我可以以编程方式更改asp.net控件的ID - ASP.NET

时间:2011-02-28 12:49:17

标签: c# asp.net

我有一个控件

<asp:Button ID="btnAjax" runat="server" Text="Ajaxified" OnClick="btnAjax_Click" />

现在从后面的代码我想更改按钮的ID

btnAjax.ID = "newButtonID";

但它现在正在运作。有可能在第一个地方吗?

修改

我已经在HTML标记中创建了控件,而不是通过代码。

3 个答案:

答案 0 :(得分:7)

是的,可以使用您发布的代码。

我有一个按钮和一个文本字段

<asp:Button ID="button" runat="server" />
<input type="text" id="result" name="result" runat="server" />

在页面加载时,我更改按钮的ID,然后将结果输出到文本字段。

protected void Page_Load(object sender, EventArgs e)
{
    button.ID = "OtherButton";
    result.Value = button.ID;
}

文本字段中的结果是“OtherButton”

答案 1 :(得分:3)

是的,您可以将该属性读取和写入[能够]。

我试过,是的,ID可以更改,也可以反映在呈现的HTML中。

<强>更新

您可以将ClientIDMode属性设置为“静态”,以便强制asp.net不更改呈现的HTML中的ID。

 <asp:Button ID="Button1" runat="server" Text="Button" ClientIDMode="Static" />

答案 2 :(得分:0)

我可以想象一个人需要实现这样的事情的唯一原因是安全地允许客户端脚本与按钮交互。如果是这种情况,那么我更喜欢将控件的clientID传递给脚本:

var btnAjax = document.getElementById('<%=btnAjax.ClientID%>')

或者使用jQuery:

$('#<%=btnAjax.ClientID%>')