在客户端分配的 ASP 文本框值未出现在回发中

Posted

技术标签:

【中文标题】在客户端分配的 ASP 文本框值未出现在回发中【英文标题】:ASP TextBox value assigned in client side not appearing in postback 【发布时间】:2019-04-22 12:25:25 【问题描述】:

我正在使用 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);
                

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

【问题讨论】:

如果您想在回发后保留您的数据,您需要将它们保留在页面的某个位置(隐藏字段、json、...)。而且它不会花费你很多 尝试使用输入控件,并在后端像“Request.Form["name"]”一样使用。 感谢您的回复先生,但请您进一步澄清一下 好的。让我解释为答案。 是的,请...... 【参考方案1】:

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

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

.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"];

【讨论】:

我已经尝试过了,但它对我不起作用......回发期间价值丢失 我该上班了。我已经用完整的描述更新了我的代码。尝试创建新页面并按照上述示例实现。 先生,我试过上面的代码,但我不知道为什么它不起作用【参考方案2】:

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

解决了你的问题试试这个。

【讨论】:

【参考方案3】:

试试下面的代码。

.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"];
    

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

【讨论】:

以上是关于在客户端分配的 ASP 文本框值未出现在回发中的主要内容,如果未能解决你的问题,请参考以下文章

在回发期间启用/禁用 Asp.net Image 按钮

动态创建的 asp.net 控件在回发后消失

发生带有 Jquery 对话框的邮箱时,asp.net 文本框值为空

asp .net背景图像在回发时闪烁

Error-ASP.NET:由于未能找到 id 为“FileUpload1$gvFiles$ctl02$lnkBtnRemoveFile”的控件或在回发后将同一 ID 分配给另一个控件,导致发生错误。

回发后jQuery将DatePicker日期文本保留到文本框中