如果在頁面在瀏覽器中呈現時將我的控件(如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