在客户端分配的 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 文本框值未出现在回发中的主要内容,如果未能解决你的问题,请参考以下文章
发生带有 Jquery 对话框的邮箱时,asp.net 文本框值为空
Error-ASP.NET:由于未能找到 id 为“FileUpload1$gvFiles$ctl02$lnkBtnRemoveFile”的控件或在回发后将同一 ID 分配给另一个控件,导致发生错误。