我不確定我的設計是否有缺陷,但想知道其他人有什麼要說的,我處於這種情況,我試圖通過一次點擊實現兩件事情。只需點擊一下執行客戶端和服務器端代碼?
使用:asp.net web表單
我有很少的文本框和一個GridView控件和一個按鈕一個Web表單。
如果我點擊我正在執行兩件事情
1)從服務器異步獲取數據到客戶端的按鈕(偉大的工作),並能在文本框中顯示的數據。
2)同樣的點擊我想綁定gridview。
<asp:Content ID="Content2" ContentPlaceHolderID="cphMaster" runat="server">
<asp:Label runat="server" ID='Label1' >Id:</asp:Label>
<asp:TextBox ID="txtId" runat='server'></asp:TextBox>
<asp:Button ID="btnSubmit" OnClientClick="LoadDataById();" runat="server" Text="Submit"
onclick="btnSubmit_Click" />
<br />
<br />
<asp:TextBox ID="txtName" runat='server'></asp:TextBox> <br />
<asp:TextBox ID="txtPurpose" runat='server'></asp:TextBox> <br />
<br />
<asp:GridView ID="GridView1" runat="server">
</asp:GridView>
</asp:Content>
服務器端
protected void btnSubmit_Click(object sender, EventArgs e)
{
GridView1.DataSource = laodData(int.Parse(txtId.Text));
GridView1.DataBind();
}
的Jquery:
function LoadVisitBasicByVisitId() {
ContactServiceProxy.invoke({ serviceMethod: "GetDataById",
data: { request: request },
callback: function(response) {
processCompletedContactStore(response);
},
error: function(xhr, errorMsg, thrown) {
postErrorAndUnBlockUI(xhr, errorMsg, thrown);
}
});
return false;
}
回顧:
1) jquery script execute asynchronously to get data from server to client and display in the textboxes
2) server side code to bind the gridview.
問題:
如果我有的OnClientClick =「返回LoadDataById();然後它僅執行Ajax代碼,並且不執行服務器側
但如果有的OnClientClick =「LoadDataById();然後它執行客戶端和服務器,但文本框的值區域覆蓋(通過Ajax的文本框的值這樣就把)
我確實嘗試過,一旦服務器端代碼執行文本框中的值消失 – 2010-05-18 19:01:28
aah,那麼應該在代碼後面註冊ajax調用腳本,這樣頁面會刷新,然後異步調用會更新文本框。我相信你的頁面在異步響應恢復之前刷新。 – derek 2010-05-18 19:07:27
你將如何註冊ajax調用腳本? – 2010-05-18 19:16:13