最先是在cs里赋值
txtSpell.Text = model.Nine_200_9;
js里的代码:
$("#<%=this.txtSpell.ClientID %>").val(__pinyin.getPinyin($("#<%=this.txtTitle.ClientID%>").val()));
执行了这一段后,也看到了文本的值变了,但是在后面的cs里获取文本时,还是前面cs里给赋的值 ,求解
cs里的代码:
protected void lbtnSave_Click(object sender, EventArgs e)
{
tsgcModel.Nine_200_9 = txtSpell.Text.Trim();
}
16 个解决方案
#1
我估计在点击按钮时,又把原来的数值写回去了。
建议----在Page_Load里加上一个判断:
建议----在Page_Load里加上一个判断:
if (!IsPostBack)
{
return;
}
#2
看看是什么时候改变值的!
#3
因为js修改这件事发生在世界的另一端,当然不会影响cs的状态
你只能通过form的把js修改的结果提交回来,通过Request获取,再赋给txtSpell.Text,这样才行
你只能通过form的把js修改的结果提交回来,通过Request获取,再赋给txtSpell.Text,这样才行
#4
楼主应该是在 protected void Page_Load 事件里给文本框赋的初值。虽然js把初值改了,但点击按钮时,在执行lbtnSave_Click方法之前,ASP.NET先执行Page_Load,因此又把初值写回去了。所以需要判断IsPostBack。
具体参见 ASP.NET页面生命周期。
具体参见 ASP.NET页面生命周期。
#5
但是我Page_Load没任何代码,txtSpell.Text = model.Nine_200_9;是在另一Click事件中赋值的
#6
贴出你的 http 调试器捕获的 Request 信息。
#7
没用Request ,保存就在lbtnSave_Click中去获取txtSpell.Text
#8
我怎么记得开启页面验证的情况下,用js修改服务端控件的状态或值,或导致ViewState验证失败,抛黄页
#9
也就是js中修改的值 ,在其页面的按钮事件中(cs)中有作用吗?
#10
我发现问题原因了,txtSpell控件设成了Enabled设成了False,就获取不到了,改回来就可以了,但是我又需要这个控件不能改,并且我试了设置ReadOnly为True也获取不到, 各位高手有什么办法吗,
#11
<asp:TextBox ID="txtSpell" runat="server"
style="display:none"></asp:TextBox>
#12
<asp:TextBox ID="txtSpell" runat="server" style="display:none"></asp:TextBox>
我要的是能看到但不能修改
#13
只能看不能修改,那不是就是个label吗? 为啥要用textbox?
#14
你是不是设置了输入框的Enabled为false
能看到不能改,那就是Enabled为false了,你可以用个 hidden来接受你的值,然后后台从Hidden取值,因为你设置了Enabled为false,所以后台会从ViewState中恢复数据,也就是你前端怎么改都没用的原因
能看到不能改,那就是Enabled为false了,你可以用个 hidden来接受你的值,然后后台从Hidden取值,因为你设置了Enabled为false,所以后台会从ViewState中恢复数据,也就是你前端怎么改都没用的原因
#15
通俗的将就是你的val写两遍,一遍是给TextBox,一遍是给Hidden
#16
我也建议,给hidden赋值。
因为以前遇到你这种情况也是这么干的。
因为以前遇到你这种情况也是这么干的。
#1
我估计在点击按钮时,又把原来的数值写回去了。
建议----在Page_Load里加上一个判断:
建议----在Page_Load里加上一个判断:
if (!IsPostBack)
{
return;
}
#2
看看是什么时候改变值的!
#3
因为js修改这件事发生在世界的另一端,当然不会影响cs的状态
你只能通过form的把js修改的结果提交回来,通过Request获取,再赋给txtSpell.Text,这样才行
你只能通过form的把js修改的结果提交回来,通过Request获取,再赋给txtSpell.Text,这样才行
#4
楼主应该是在 protected void Page_Load 事件里给文本框赋的初值。虽然js把初值改了,但点击按钮时,在执行lbtnSave_Click方法之前,ASP.NET先执行Page_Load,因此又把初值写回去了。所以需要判断IsPostBack。
具体参见 ASP.NET页面生命周期。
具体参见 ASP.NET页面生命周期。
#5
楼主应该是在 protected void Page_Load 事件里给文本框赋的初值。虽然js把初值改了,但点击按钮时,在执行lbtnSave_Click方法之前,ASP.NET先执行Page_Load,因此又把初值写回去了。所以需要判断IsPostBack。
具体参见 ASP.NET页面生命周期。
但是我Page_Load没任何代码,txtSpell.Text = model.Nine_200_9;是在另一Click事件中赋值的
#6
但是我Page_Load没任何代码,txtSpell.Text = model.Nine_200_9;是在另一Click事件中赋值的
贴出你的 http 调试器捕获的 Request 信息。
#7
但是我Page_Load没任何代码,txtSpell.Text = model.Nine_200_9;是在另一Click事件中赋值的
贴出你的 http 调试器捕获的 Request 信息。
没用Request ,保存就在lbtnSave_Click中去获取txtSpell.Text
#8
我怎么记得开启页面验证的情况下,用js修改服务端控件的状态或值,或导致ViewState验证失败,抛黄页
#9
也就是js中修改的值 ,在其页面的按钮事件中(cs)中有作用吗?
#10
我发现问题原因了,txtSpell控件设成了Enabled设成了False,就获取不到了,改回来就可以了,但是我又需要这个控件不能改,并且我试了设置ReadOnly为True也获取不到, 各位高手有什么办法吗,
#11
<asp:TextBox ID="txtSpell" runat="server"
style="display:none"></asp:TextBox>
#12
<asp:TextBox ID="txtSpell" runat="server" style="display:none"></asp:TextBox>
我要的是能看到但不能修改
#13
只能看不能修改,那不是就是个label吗? 为啥要用textbox?
#14
你是不是设置了输入框的Enabled为false
能看到不能改,那就是Enabled为false了,你可以用个 hidden来接受你的值,然后后台从Hidden取值,因为你设置了Enabled为false,所以后台会从ViewState中恢复数据,也就是你前端怎么改都没用的原因
能看到不能改,那就是Enabled为false了,你可以用个 hidden来接受你的值,然后后台从Hidden取值,因为你设置了Enabled为false,所以后台会从ViewState中恢复数据,也就是你前端怎么改都没用的原因
#15
通俗的将就是你的val写两遍,一遍是给TextBox,一遍是给Hidden
#16
我也建议,给hidden赋值。
因为以前遇到你这种情况也是这么干的。
因为以前遇到你这种情况也是这么干的。