C# 如何保护asp:textbox不受用户输入的影响?
如何保护asp:textbox不受用户输入的影响 禁用它C# 如何保护asp:textbox不受用户输入的影响?,c#,asp.net,vb.net,readonly,disabled-control,C#,Asp.net,Vb.net,Readonly,Disabled Control,如何保护asp:textbox不受用户输入的影响 禁用它 <asp:TextBox ID="txbx" runat="Server" Text="1" Enabled="false" /> <asp:TextBox ID="txbx" runat="Server" Text="1" ReadOnly="true" /> 或者使用客户端控件并将其设置为在服务器上运行: <input type="text" id="txbx" readonly="readonly"
<asp:TextBox ID="txbx" runat="Server" Text="1" Enabled="false" />
<asp:TextBox ID="txbx" runat="Server" Text="1" ReadOnly="true" />
或者使用客户端控件并将其设置为在服务器上运行:
<input type="text" id="txbx" readonly="readonly" runat="server" />
<input type="text" id="txbx" disabled="disabled" runat="server" />
我曾经通过设置code behind的
ReadOnly
属性摆脱了这种情况。你可以试试这个
txbx.Attributes.Add("ReadOnly", "ReadOnly");
在您的页面加载事件中添加这行代码
请告知它是否适用于您。我曾经通过设置code behind的只读属性摆脱了这种情况。你可以试试这个
txbx.Attributes.Add("ReadOnly", "ReadOnly");
在您的页面加载事件中添加这行代码
请告知它是否适合您。用户可以看到它
<asp:TextBox ID="txbx" runat="Server" />
防止用户输入
<asp:TextBox ID="txbx" runat="Server" Text="1" Enabled="false" />
<asp:TextBox ID="txbx" runat="Server" Text="1" ReadOnly="true" />
使用javascript进行更新。
创建一个函数并使用
<script type="text/javascript">
var a = ($("#<%=txbx.ClientID%>"));
a.value="assas";
</script>
变量a=($)(“#”);
a、 value=“assas”;
将更新的值发布到服务器。
与上面相同,用户可以看到
<asp:TextBox ID="txbx" runat="Server" />
防止用户输入
<asp:TextBox ID="txbx" runat="Server" Text="1" Enabled="false" />
<asp:TextBox ID="txbx" runat="Server" Text="1" ReadOnly="true" />
使用javascript进行更新。
创建一个函数并使用
<script type="text/javascript">
var a = ($("#<%=txbx.ClientID%>"));
a.value="assas";
</script>
变量a=($)(“#”);
a、 value=“assas”;
将更新的值发布到服务器。
与上面相同由于某些原因,我们不太清楚,但是ASP.NET有一个特殊的属性,用于控制禁用的控件是否被发送回服务器:
因此,您需要为窗体
控件将此属性设置为true
<form id="form1" submitdisabledcontrols="true" runat="server">
<asp:TextBox ID="txbx" runat="Server" Text="1" ReadOnly="true" Enabled="false" />
</form>
由于某些原因,我们不太清楚,但ASP.NET具有特殊属性,用于控制禁用的控件是否发送回服务器:
因此,您需要为窗体
控件将此属性设置为true
<form id="form1" submitdisabledcontrols="true" runat="server">
<asp:TextBox ID="txbx" runat="Server" Text="1" ReadOnly="true" Enabled="false" />
</form>
注意:
不会发送禁用输入的数据
我的个人解决方案:
- 使用JS使原始字段不可见
- 用原始值编写新字段并将其禁用,只是为了显示
var status = document.getElementById("ElementID");
status.style.visibility='hidden';
var row = status.parentNode.parentNode;
var newCol = row.insertCell(-1);
newCol.innerHTML = "<div style='padding-left: 6px'><input readonly='readonly' type='text' size='50' value='" + status.value + "' class='inputReadOnly'/></div>";
var status=document.getElementById(“ElementID”);
status.style.visibility='hidden';
变量行=status.parentNode.parentNode;
var newCol=row.insertCell(-1);
newCol.innerHTML=“”;
注意:
不会发送禁用输入的数据
我的个人解决方案:
- 使用JS使原始字段不可见
- 用原始值编写新字段并将其禁用,只是为了显示
var status = document.getElementById("ElementID");
status.style.visibility='hidden';
var row = status.parentNode.parentNode;
var newCol = row.insertCell(-1);
newCol.innerHTML = "<div style='padding-left: 6px'><input readonly='readonly' type='text' size='50' value='" + status.value + "' class='inputReadOnly'/></div>";
var status=document.getElementById(“ElementID”);
status.style.visibility='hidden';
变量行=status.parentNode.parentNode;
var newCol=row.insertCell(-1);
newCol.innerHTML=“”;
在我看来,最简单的解决方案是有一个隐藏字段,并在回发时读取该字段,这样受保护的文本框只是表面的,实际的逻辑是使用一个隐藏字段
也就是说,
ReadOnly=true
应该仍然可以在回发时使用,只有Enabled=false
不应该回发值。在我看来,最简单的解决方案是使用一个隐藏字段,并在回发时读取该字段,这样受保护的文本框就只是装饰性的,实际逻辑使用的是隐藏字段
这就是说,ReadOnly=true
仍应在回发时工作,只有Enabled=false
不应回发值。您可以使用htmlinput
元素,并将runat
属性设置为server
以从server
引用该值,如下所示:
<input type="text" name="name" id="text2" readonly="readonly" runat="server" />
它的值在客户端更改后将发送到服务器,而它已设置为只读您可以使用html输入元素,并将runat
属性设置为服务器,以从服务器引用该属性,如下所示:
<input type="text" name="name" id="text2" readonly="readonly" runat="server" />
它的值在客户端更改后将发送到服务器,而它已设置为只读
这是vb还是C#。我可以用visualbasic告诉你。您可以转换为C#然后,如果在C#中,则有许多VB到C#的转换器。您确定更新后的值不会回发吗?我使用了ReadOnly=“true”并使用jQuery进行了更新,但从来没有遇到过问题。@KashishArora VB更好,谢谢you@Mych是,删除readonly后,所有操作都正常。这是这里的后续文章:经过一点实验后,标准asp:TextBox不会在ReadOnly=True时回发客户端更新值,而Telerik Texbox控件会回发。我广泛使用Telerik,因此在出现此问题时感到困惑。这是vb还是C#。我可以用visualbasic告诉你。您可以转换为C#然后,如果在C#中,则有许多VB到C#的转换器。您确定更新后的值不会回发吗?我使用了ReadOnly=“true”并使用jQuery进行了更新,但从来没有遇到过问题。@KashishArora VB更好,谢谢you@Mych是,删除readonly后,所有操作都正常。这是这里的后续文章:经过一点实验后,标准asp:TextBox不会在ReadOnly=True时回发客户端更新值,而Telerik Texbox控件会回发。我广泛使用Telerik,因此在您遇到此问题时感到困惑。@DreamTeK当时在您的问题中提到了这一点,以及其他可能相关的细节。谢谢您的帮助。我没有添加此属性,因为在我之前的帖子中,我知道submitdisabledcontrols不会使用javascript提交更新的值。所以我写这篇文章是为了避免混淆@DreamTeK在你的问题中提到了这一点,以及其他可能相关的细节。谢谢你的帮助。我没有添加此属性,因为在我之前的帖子中,我知道submitdisabledcontrols不会使用javascript提交更新的值。所以我写这篇文章是为了避免混淆。我曾考虑过这一点,但希望有一个更高效的代码解决方案