星期一, 9月 01, 2008

用javascript呼叫updatepanel

這是常用到的功能..寫下來..免得忘記..大家也可以參考一下..

.aspx

<body>
<form id="form1" runat="server">
<div>
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:Literal ID="Literal1" runat="server"></asp:Literal>
</ContentTemplate>
</asp:UpdatePanel>
<input id="Button1" type="button" value="button" onclick="update();" />
</div>
</form>
</body>

.cs

protected void Page_Load(object sender, EventArgs e)
{
Literal1.Text = DateTime.Now.ToString();

string fn = string.Format("function update(){{{0}}};",
ClientScript.GetPostBackEventReference(this.UpdatePanel1, null));

ClientScript.RegisterStartupScript(this.GetType(), "test", fn, true);
}

這裡說明一下..之前有文章寫說..可以直接在button的事件加上onclick="__doPostBack('UpdatePanel1','')"這樣就行了..不過有風險性..因為會不確定aspx是否會產生出__doPostBack這function(通常幾乎都會有啦)..所以在這裡..建議是用ClientScript.GetPostBackEventReference去產生js出來..參考一下ㄅ..ChickenBugChickenBugChickenBugChickenBug..

沒有留言: