C# 读取asp.net中的隐藏控件值
我在页面中使用隐藏控件,并使用javascript为隐藏控件赋值。现在我想在代码隐藏中获取隐藏的控件值。它总是返回空值。请帮我解决它C# 读取asp.net中的隐藏控件值,c#,javascript,asp.net,c#-4.0,C#,Javascript,Asp.net,C# 4.0,我在页面中使用隐藏控件,并使用javascript为隐藏控件赋值。现在我想在代码隐藏中获取隐藏的控件值。它总是返回空值。请帮我解决它 My partial code is here. <asp:HiddenField ID="Hfproductid" runat="server" /> var hfproductid = document.getElementById('<%= Hfproductid.ClientID %>'); prod_id=100; h
My partial code is here.
<asp:HiddenField ID="Hfproductid" runat="server" />
var hfproductid = document.getElementById('<%= Hfproductid.ClientID %>');
prod_id=100;
hfproductid .innerHTML = prod_id;
In My Code Behind
------------------
string invid = HfInvoices.Value; //invid =""; always
我的部分代码在这里。
var hfproductid=document.getElementById(“”);
产品id=100;
hfproductid.innerHTML=prod_id;
在我的代码背后
------------------
字符串invid=HfInvoices.Value//因维德=”;总是
您可以通过
if (!Page.IsPostBack)
{
document.getElementById('<%= Hfproductid.ClientID %>').value = "100";
}
if(!Page.IsPostBack)
{
document.getElementById(“”).value=“100”;
}
然后通过以下方式显示值:
alert(document.getElementById('<%= Hfproductid.ClientID %>').value)
警报(document.getElementById(“”).value)
必须设置隐藏字段的值,而不是innerHTML
hfproductid.value = prod_id;
请尝试以下代码:
var hfproductid = document.getElementById('<%= Hfproductid.ClientID %>');
prod_id=100;
hfproductid .val(prod_id);
alert(hfproductid .val());
试试这个这是因为你的页面正在发回
这就是为什么在客户端,您可以通过javascript获得它的价值,但在服务器端,页面正在发回
尝试使用IsPostback
属性
if(!Page.IsPostback)
参考:
var hdnvalue=document.getElementById(“”);
myvalue=5;
hdnvalue.val(myvalue);警报(hdnvalue.val());
juanreyesv前面提到的绝对正确,如果您使用javascript更改值,则必须将信息回发到服务器,否则您将无法看到“代码隐藏”中的更改。
为此,您必须使用
__doPostBack();
所以你的代码是
var hfproductid = document.getElementById('<%= Hfproductid.ClientID %>');
var prod_id = 100;
hfproductid.value = prod_id;
__doPostBack();
上面的代码可以正常工作,但是由于它是一个没有任何条件的强制回发,它将被连续激发,以避免您必须使用1个隐藏字段并将其用作标志来检查是否有任何值,然后不要激发
_doPostBack()
所以您的最终代码应该如下所示
if (document.getElementById('<%= hdncheck.ClientID %>').value == "Y") {
var hfproductid = document.getElementById('<%= Hfproductid.ClientID %>');
var prod_id = 100;
hfproductid.value = prod_id;
document.getElementById('<%= hdncheck.ClientID %>').value = "N";
__doPostBack();
}
如果使用javascript更改值,则必须将信息发回服务器,否则将无法看到成功分配的“代码隐藏”隐藏字段值中的更改。但在c#page中,我无法读取此值。@user2176150检查页面源以检查是否生成了隐藏字段。可能您的codebehind使其可见。Visible=“False”
。尝试使用if(!IsPostback)@user2176150在检查隐藏字段值的位置发布您的方法。。因此,我们可以向您建议正确答案document.getElementById(“”).value=“100”应该在服务器上执行什么操作?
if(IsPostback){
string invid = Hfproductid.Value;
}
_doPostBack()
if (document.getElementById('<%= hdncheck.ClientID %>').value == "Y") {
var hfproductid = document.getElementById('<%= Hfproductid.ClientID %>');
var prod_id = 100;
hfproductid.value = prod_id;
document.getElementById('<%= hdncheck.ClientID %>').value = "N";
__doPostBack();
}
if (!IsPostBack)
{
hdncheck.Value = "Y";
}
if (IsPostBack)
{
string invid = Hfproductid.Value;
}