在客户端分配的ASP TextBox值未出现在回发中

时间:2018-11-20 05:10:23

标签: jquery asp.net ajax postback viewstate

我正在使用ajax和jquery从数据库中获取数据,以使用一些值填充文本框。问题是每当回发发生时,jquery分配的所有数据都会丢失。我已经尝试了几乎所有东西。

我已经从文本框中删除了ReadOnly =“ true”属性。

我不想使用“隐藏字段”,因为我在单个页面中几乎有20-25个文本框。还有其他方法可以做到这一点。

jQuery代码

 $.ajax({
                type: "POST",
                url: 'Services/Customer.asmx/GetCustomerDetails',
                dataType: "json",
                data: JSON.stringify({ branchCode: BranchCode, customerCode: CustomerCode }),
                contentType: "application/json; charset=utf-8",
                success: function (returnedData) {
                    debugger;
                    var data = returnedData.d;
                    $("#txt_CustName").val(data[0].customerName);
                    $("#txt_AddressCust").val(data[0].address1);
                    $("#txt_AddressCust1").val(data[0].address2);
                    $("#txt_CityCust").val(data[0].City);
                    $("#txt_PinCodeCust").val(data[0].pinCode);
                    $("#txt_EmailCust").val(data[0].email);
                    $("#txt_MobileCust").val(data[0].mobile);
                    $("#txt_ContactPersonCust").val(data[0].contactPerson);
                    $("#txt_GSTNCust").val(data[0].GSTN);
                    $("#hdn_CustomerGroup").val(data[0].customerGroup);
                }

请建议我任何解决方案...

3 个答案:

答案 0 :(得分:0)

从客户端设置时,该值将在每次回发时重置。

下面是您可以执行类似操作的方式,

.ASPX

$(document).ready(function () {
    $("#traveller_phone").val("9898948484");
});

<input type="text" class="form-control" name="traveller_phone" id="traveller_phone" />
<asp:Button ID="ClickMe" Text="click me" runat="server" OnClick="ClickMe_Click" />

C#:

protected void ClickMe_Click(object sender, EventArgs e)
{
     string phone = Request.Form["traveller_phone"];
}

答案 1 :(得分:0)

asp.net文本框控件使用属性 ClientIDMode =“ Static”

解决了您的问题,试试这个。

答案 2 :(得分:0)

尝试下面的代码。

.aspx

 <script type="text/javascript">

        $(document).ready(function () {
            $("#txt_name").val("Cory");
        });

    </script>
<body>
    <form id="form1" runat="server">
        <asp:UpdatePanel ID="UpdatePanelLossHistory" runat="server">
            <ContentTemplate>
                <asp:ScriptManager ID="ScriptManager1" runat="server">
                </asp:ScriptManager>
                <div>
                    <input type="text" runat="server" name="txt_name" id="txt_name" />                   
                    <asp:Button runat="server" ID="Button1" Text="Submit"  OnClick="Button1_Click" />
                     <asp:Button runat="server" ID="Button2" Text="DummyPostback"  />
                </div>
            </ContentTemplate>
        </asp:UpdatePanel>
    </form>

</body>

C#:

protected void Button1_Click(object sender, EventArgs e)
    {
        string txtName = Request.Form["txt_name"];
    }

有两个按钮,一个用于提交,第二个用于虚拟回发命中。 现在,如果您单击“虚拟”按钮,并且您修改名称并单击“提交”,则该值将不会丢失。我希望这会有所帮助。