在回发期间丢失数据由javascript更改

时间:2013-09-29 07:24:19

标签: asp.net viewstate

我有这个asp.net控件:

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

我希望只读它,通常是ReadOnly="trye"Enable="false"

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

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

1 个答案:

答案 0 :(得分:0)

解决“在回发期间由javascript更改数据失败” 最好用这篇文章来描述 ViewState and Readonly Property of Textbox

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

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

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

只需将其放入PageLoad事件

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

你已经完成了。如果您的意图是禁用控件进行编辑,请不要忘记删除ReadOnly="true"Enable="false",只需使用上面的代码段即可。如果你穿上它,请不要忘记删除Enable="false"