首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

[js] js给hidden 赋值,后台获取不到的有关问题 ?

2012-09-07 
[js]js给hidden 赋值,后台获取不到的问题 ??input typehidden idselected_dt_idrunatserver/使

[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)
 {

}
里面写,在这里面是获取不到值的,具体的你去感受吧

热点排行