如果在页面在浏览器中呈现时将我的控件(如Button)放入ContentPage(由MasterPage继承)内部<asp:Content></asp:Content>
中,我坚持使用此动态控件ID生成,控件ID被改变,我读ScottGu article on 'clientIDMode',我想我的问题是在,所以我设置“的ClientIDMode”内部“的Web.Config”ContentPage的动态控制ID生成
<pages clientIDMode="Static"></pages>
但问题仍然存在,我无法从代码是指我的控件后面像这样,
//ctl00$Cntnt$Button1 name works but its dynamically created
if (ScriptManager1.AsyncPostBackSourceElementID == "Button1")
{
Label1.Text = "Async PostBack occured @ " + DateTime.Now.ToLongTimeString();
}
ASP.net标记:
<asp:Button ID="Button1" runat="server" Text="Refresh me" onclick="Button1_Click" />
浏览器端标记:
<input type="submit" name="ctl00$Cntnt$Button1" value="Refresh me" id="Button1" />
Q)我不能只使用的,我在标记指定控件ID(如如果我没有任何MasterPage)?
PS:在AsyncPostback我想在此基础上提出AsyncPostback,这样做,我必须从AsyncPostBackSourceElementID
不幸的回报修改控件ID
让ASP.NET处理命名有什么问题?您仍然可以通过您指定的ID引用控件,即'Label1'。 – 2012-03-31 17:58:39
@JamesJohnson但我不能引用Button1的原始名称..! – 2012-03-31 18:15:33
我想你可能会误解'ClientIDMode =“Static”'的用途。由ASP.NET生成的ID仅适用于客户端。在代码隐藏中,您可以通过在标记中分配给它的标识来引用控件。如果这没有发生,那么你有另一个问题。 – 2012-03-31 18:19:51