0

我有这个 asp.net 控件:

<asp:TextBox ID="txtName" runat="server" EnableViewState="false" ReadOnly="true" /> 

我想成为只读的,通常我用ReadOnly="trye"或用Enable="false"

如果我在客户端通过 javascript 更改此控件的值,则更改的值将不会通过服务器端的回发传播...无论我用 javascript 做什么都行不通,除非我删除readonly="true"and enable="false"

如何将其设为只读,以便当我使用 javascript 更改值时,该值将通过回发传播?

4

1 回答 1

0

这篇文章ViewState and Readonly Property of Textbox 最好描述了 “在回发期间丢失由javascript更改的数据”的解决方案

例如,假设我们有这个 asp.net 控件:

<asp:TextBox ID="txtName" runat="server" EnableViewState= "false" ReadOnly="true" /> 

如果您在客户端通过 javascript 更改此控件的值,则更改的值将不会通过服务器端的回发传播......无论您使用 javascript 做什么,除非您删除readonly="true". 现在有一个解决这个问题的方法,如上面的文章所述。

只需将其放在 PageLoad 事件中

if (!IsPostBack)
    txtName.Attribute.Add("readonly","readonly");

你就完成了。只是不要忘记删除ReadOnly="true",或者Enable="false"如果您的意图是禁用控件编辑,只需使用上面的代码段。Enable="false"戴上后别忘了取下。

于 2013-09-29T07:24:18.613 回答