[js] js给hidden 赋值,后台获取不到的问题 ??
<input type="hidden" id="selected_dt_id" runat="server" />
使用js 给它 赋值;赋值成功了。
可是在服务器端,this.selected_dt_id.value 取到值的总是""
为什么呢,百思不得其解??
------解决方案--------------------这个控件有缺限(这个是由load事件引起的,他在load前是有值的,一段重新加载,值就丢了,我也碰到过),尤其在与ajax.pro在一起混用的页面中非常明显,你还是用textbox吧,隐藏起来就行了
------解决方案--------------------用服务器控件
HiddenFiled
------解决方案--------------------1. 记住.net 触发事件有一次“回调”。
代码一定写到
if(!this.IsPostback)
{
//代码
}
2.上面不行那么 换成 textbox 试一试!
------解决方案--------------------这个问题经常碰到。
我在后台,直接用Request.Post["控件Name"]来获取值。
用Request就可以获取到被js赋的值
------解决方案--------------------if(!IsPostback)
{
//代码
}
试下,还有如果用了updatepanel的话将此控件放在updatepanel里面
------解决方案--------------------可以确定的告诉你是可以获取到的:我老是这么干前台
<asp:HiddenField ID="FCount" runat="server" Value=""/>
<asp:HiddenField ID="BNum" runat="server" Value=""/>
<asp:HiddenField ID="FNum" runat="server" Value=""/>
<asp:HiddenField ID="Result" runat="server" Value="" />
赋值
function addResult()
{
var addITemCount=(parseInt(document.getElementById("<%=BNum.ClientID %>").value,10)-1-parseInt(document.getElementById("<%=FCount.ClientID %>").value,10));
//alert(document.getElementById("<%=FCount.ClientID %>").value);
for(var i=0;i<addITemCount;i++)
{
var ITemID="ctl00_CPR_Item_"+(1+parseInt(document.getElementById("<%=FCount.ClientID %>").value,10)+i);
var ItemStr=document.getElementById(ITemID).value;
document.getElementById("<%=Result.ClientID %>").value=document.getElementById("<%=Result.ClientID %>").value+ItemStr+"@#$%&@";
}
}
取值:
string ItemStr = Result.Value;
记住不要在
if (!IsPostBack)
{
}
里面写,在这里面是获取不到值的,具体的你去感受吧