由于表单的修改由两种用户操作,分别能修改的项是不一样的,但都可以查看。
设想实现一个修改方法,两种用户修改保存后都调用这个方法作保存操作,然后在客户端判断不同的用户然后把部分控件disabled掉。结果出现在客户端disabled掉的控件在服务器端得到的值为""的问题了,刚开始不解,写了个测试程序也是这样的,想来想去,可能是disabled后控件的viewstate也不可用了,所以在服务器端就得不到其值了。测试代码如下:
//
服务器
private
void
Page_Load(
object
sender, System.EventArgs e)
{ if(!IsPostBack) { this.TextBox1.Text = "guoguo"; } }
private
void
Button1_Click(
object
sender, System.EventArgs e)
{ Response.Write("<script>alert('"+this.TextBox1.Text +"')</script>"); }
//
客户端
<
script language
=
javascript
>
function window_load()
{ Form1.TextBox1.disabled = true; }
</
script
>
<
body MS_POSITIONING
=
"
GridLayout
"
onload
=
"
window_load();
"
>
点击按钮得到的是""值。
解决办法:把客户端的禁用功能放到服务器端实现就可以了。在page_load()中加入this.TextBox1.Enabled = false;除掉客户端的οnlοad="window_load();"就可以了。**************************************可能许多人早就知道了,但我确实是今天才发现了,费了我不少霎时间。平时做页面好少,都是写中间层代码,感觉asp.net还不熟。
转载于:https://www.cnblogs.com/hotsoho.net/archive/2004/11/30/71196.html