ASP.NET-将C#变量传递给HTML [重复]

问题描述 投票:8回答:4

我正在尝试将C#中声明的变量传递给html。这些变量都已在后面的代码中声明为公共。

这是我正在使用的HTML代码:

<asp:TextBox ID="TextBoxChildID" Text='<%= Child_ID %>' runat="server" Enabled="false"></asp:TextBox>

问题是,当页面加载时,文本框中显示的是文本,而不是变量中的值。

请问怎么了?

c# asp.net
4个回答
9
投票

所有这些都假定这只是页面上某个文本框,而不是DataBound控件中的文本框。如果文本框是转发器中itemTemplate的一部分,并且Child_ID随数据行的不同而不同,则所有这些都不正确。

改为执行此操作:

<asp:TextBox ID="TextBoxChildID"  runat="server" Enabled="false"><%= Child_ID %></asp:TextBox>

简而言之,您犯了与我问这个问题时相同的错误:Why <%= %> works in one situation but not in another


或者,在后面的代码中,您可以在ASPX中使用它:

<asp:TextBox ID="TextBoxChildID"  runat="server" Enabled="false"></asp:TextBox>

以及此代码在您的代码背后:

TextBoxChildID.Text = Child_ID;

2
投票

该变量必须是公共的。和:

'<%# Child_ID %>' 

1
投票
<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>");

0
投票

在HTML中:

<asp:HiddenField ID="HiddenField1" runat="server" />

在后面的代码中:

protected void Page_Load(object sender, EventArgs e)
{
    HiddenField1.Value = Child_ID;
}

这将是最好的方法,它将使用该值创建一个隐藏的输入。

© www.soinside.com 2019 - 2024. All rights reserved.