さて、私は2日間解決しようとしてきたユニークな問題を抱えています。
System.Web.UI.WebControls.WebParts.WebPartコントロールがあり、カスタムSharepointビューを作成しています。私がやりたいことのほとんどは、1つの小さな問題を除いて機能しています。日付と通貨のフィールドをフォーマットするには、Javascriptを使用する必要があります。クライアントは、DateTimeフィールドをmm / dd / yyyyにし、通貨には必要に応じて$とコンマを含めることを望んでいます。
これは、通常のaspxページのjavascriptでは十分に簡単です。関数を記述し、ページの読み込み時に
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
GridFieldDAO dao = new GridFieldDAO();
myGrid.DataSource = dao.getItems();
myGrid.DataBind();
}
GetBuildFormattingScript();
}
private void GetBuildFormattingScript()
{
string script = "<script type=\"text/javascript\">";
script += " FormatByRows(\"" + myGrid.ClientID + "\",2);";
script += " FormatByRowsDate(\"" + myGrid.ClientID + "\",1);";
script += "</script>";
if(!ClientScript.IsClientScriptBlockRegistered("DoFormatting"))
ClientScript.RegisterStartupScript(typeof(string), "DoFormatting", script);
string script2 = " <script type=\"text/javascript\">"+
"var prm = Sys.WebForms.PageRequestManager.getInstance(); "+
"prm.add_beginRequest(BeginRequestHandler); "+
"prm.add_endRequest(EndRequestHandler); "+
"function BeginRequestHandler(sender, args) "+
"{ }"+
"function EndRequestHandler(sender, args) "+
"{ FormatByRows(\"" + myGrid.ClientID + "\",2); "+
" FormatByRowsDate(\""+myGrid.ClientID+"\",1);}</script> ";
if (!ClientScript.IsClientScriptBlockRegistered("DoUpdateFormatting"))
ClientScript.RegisterStartupScript(typeof(string), "DoUpdateFormatting", script2);
}
WebPartのOnLoadに、更新したいグリッドが存在しないという私の問題があります...そのため、OnPreRenderにコードを追加する必要があります。
WebPArtが読み込まれ、Javascriptが起動しないので、[更新]をクリックすると起動します。誰かが私が最初のWebPartロードでコードを動作させるのを手伝ってもらえますか?誰かがサーバーサイドスクリプトをSharePointでこのように機能させることができましたか?
ありがとう、マイクV