ASP.NET-将C#变量传递给HTML
我试图将C#中声明的变量传递给html。这些变量都在代码隐藏中声明为公共的 这是我正在使用的HTML代码:ASP.NET-将C#变量传递给HTML,c#,asp.net,C#,Asp.net,我试图将C#中声明的变量传递给html。这些变量都在代码隐藏中声明为公共的 这是我正在使用的HTML代码: <asp:TextBox ID="TextBoxChildID" Text='<%= Child_ID %>' runat="server" Enabled="false"></asp:TextBox> 问题是当页面加载时,文本框中会出现文本“”,而不是变量中的值 有什么问题吗?所有这些都假设这只是页面上某个地方的文本框,而不是数据绑定控件中的文本
<asp:TextBox ID="TextBoxChildID" Text='<%= Child_ID %>' runat="server" Enabled="false"></asp:TextBox>
问题是当页面加载时,文本框中会出现文本“”,而不是变量中的值
有什么问题吗?所有这些都假设这只是页面上某个地方的文本框,而不是数据绑定控件中的文本框。如果文本框是中继器中itemTemplate的一部分,并且子项ID因数据行而异,那么所有这些都是不正确的 改为这样做:
<asp:TextBox ID="TextBoxChildID" runat="server" Enabled="false"><%= Child_ID %></asp:TextBox>
变量必须首先是public。以及:
'<%# Child_ID %>'
“”
Page.RegisterStartupScript(Guid.NewGuid().ToString(),
“abc();”;
在HTML中:
<asp:HiddenField ID="HiddenField1" runat="server" />
这将是最好的方法,它会创建一个带有值的隐藏输入。我尝试了你的建议。然而,现在文本框中似乎什么也没有出现:梭利,我自己搞错了。在这种情况下也不起作用。应该是现在。如果是这样的话,去投票表决我的问题的答案-那个家伙做了很好的解释,他应该得到分数。再看看这个答案上的注释-有一个链接指向一些类似的表达式,它们很有用。它给了我一个错误:代码块在此上下文中不受支持谢谢你的帮助:)我解决了问题:)问题是什么?你是怎么解决的?我很确定它只需要被保护。作为一个好的实践,应该将正确的值而不是变量传递给HTML。因为有一个直接的继承保护变量也可以工作。
'<%# Child_ID %>'
<script type="text/javascript">
function abc()
{
var id = document.getElementById('txtTextBox');
id.value=<%=MyProperty %>;
alert(id.value);
}
</script>
protected int MyProperty
{
get
{
return 1;
}
}
Page.RegisterStartupScript(Guid.NewGuid().ToString(),
"<script language = 'javascript'>abc();</script>");
<asp:HiddenField ID="HiddenField1" runat="server" />
protected void Page_Load(object sender, EventArgs e)
{
HiddenField1.Value = Child_ID;
}