gpt4 book ai didi

c# - TextBox 值未分配给 asp.net 中的变量

转载 作者:太空宇宙 更新时间:2023-11-03 21:42:12 26 4
gpt4 key购买 nike

Java 脚本

function outputtax() 
{
var tamount = parseFloat(document.getElementById('<%=txtpsubtotal.ClientID%>').value);
var cash = parseFloat(document.getElementById('<%=txtpdiscount.ClientID%>').value);

if (isNaN(tamount) != true && isNaN(cash) != true && isNaN(tax) != true)
{
document.getElementById('<%=txtPtotalamout.ClientID%>').value =
Math.round(parseFloat(document.getElementById('<%=txtpsubtotal.ClientID%>').value)
- parseFloat(document.getElementById('<%=txtpdiscount.ClientID%>').value))
return false;
}

}

<asp:TextBox ID="txtPtotalamout" runat="server" ReadOnly="true">
</asp:TextBox>

.CS

objsupplyPL.totalamount = Convert.ToDouble(txtPtotalamout.Text.ToString());

值显示在文本框上,但是当我单击保存按钮时,txtptotalamount 正在获取null 值。如果我放置 readonly="false" 它工作正常。

最佳答案

来自 http://codecorner.galanter.net/2009/10/09/postback-disabled-textbox/

假设在您的 ASP.NET 应用程序中,您将 TextBox 控件的属性 ReadOnly 设置为 True(或将 Enabled 设置为 False)以防止用户直接输入数据。但是您仍然希望通过客户端 JavaScript 更新该文本框的值。正在发生的情况,可以更新该值。但是在回发到服务器期间——惊喜,惊喜! – 新值不会持续存在。这是出于安全预防措施——如果该值不打算更改——则不允许更改。但有一种解决方法。

诀窍是 - 保持 ReadOnly = FalseEnabled = True 并模拟它们的行为。将以下行添加到您的服务器端代码:

TextBox1.Attributes["onclick"] = "this.blur();"

其中 TextBox1 是您的文本框控件。此行所做的是将客户端行为添加到文本框。一旦用户尝试单击文本框,焦点就会立即丢失,从而阻止用户输入数据,从而使文本框基本上处于只读状态。为了进一步的效果,您可以将文本框的背景设置为“LightGray”之类的东西,使其显示为禁用。

关于c# - TextBox 值未分配给 asp.net 中的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18789861/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com