我有一个定制的ASP控件,它基于一个选择(下拉菜单).如果我通过在其html中添加单词"disabled"来禁用我的控件,我在处理表单数据时会开始获取空指针错误.
我想,要么浏览器不回发禁用的表单项,要么ASP.NET在处理表单数据时忽略它们.我不确定它是哪一个.我想知道我在哪里丢失数据.
谢谢你的帮助.
PS.我意识到有更好的方法来创建和禁用控件而不是手动编辑html,但这里有一个上下文,不允许我这样做.
是设置控件的Enable = false是为了防止控件的值被添加到已发布的数据集合中.
你可以使用readonly属性.
在MSDN中,它说:
将ReadOnly属性设置为true的TextBox控件的Text值在发生回发时发送到服务器,但服务器不对只读文本框进行处理.这可以防止恶意用户更改只读的Text值.除非由服务器端代码修改,否则Text属性的值将保留在回发之间的视图状态中.
此处还有Microsoft对与主题相关的错误报告的回复.
但如果你以经典的方式使用它会起作用:
txt2.Attributes.Add("readonly", "readonly");