只需点击一下即可执行客户端和服务器端代码?

Nic*_*ahn 3 asp.net jquery

我不确定我的设计是否有缺陷,但想知道其他人有什么要说的,我正处于一种情况下,我试图一次点击两件事.

使用:asp.net web表单

我有一个网页表单,几乎没有文本框和gridview控件和一个按钮.

如果我点击按钮我正在执行两件事

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>
Run Code Online (Sandbox Code Playgroud)

服务器端

        protected void btnSubmit_Click(object sender, EventArgs e)
        {
            GridView1.DataSource = laodData(int.Parse(txtId.Text));
            GridView1.DataBind();
        }
Run Code Online (Sandbox Code Playgroud)

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;
} 
Run Code Online (Sandbox Code Playgroud)

概括:

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.
Run Code Online (Sandbox Code Playgroud)

问题:

如果我有onClientClick ="返回LoadDataById();然后它只执行ajax代码而不执行服务器端

但如果有onClientClick ="LoadDataById();然后它执行客户端和服务器但文本框值擦除.(文本框值通过ajax popuplate)

der*_*rek 5

如果你的jquery函数返回true,你的服务器端代码就会处理.返回false会阻止页面回发到服务器.

还有,设置你的 onClientClick="return LoadDataById();"