2011-09-08 44 views
0

這是關於控制ID。我正在開發聊天功能在我的asp.net項目。我需要爲當前用戶正在聊天的目標用戶顯示一個聊天分區。每個聊天div都加載一個用戶控件。我想知道是否有多個控制節目在同一個網頁中,控件ID是什麼。例如,在用戶控件id =「tb1」中有一個文本框。如果頁面中有兩個用戶控件,那麼兩個文本框共享一個相同的ID?我問,因爲我發現,即使兩個聊天的div顯示,div中的內容是相同的,我不知道爲什麼。可以在頁面中多次使用同一個用戶控件嗎?

回答

1

是的,您可以在同一頁面中多次使用相同的控件。

由於每個用戶控件都有不同的ID,因此它內部的子控件將擁有基於容器控件ID的不同ID,只要它們都是服務器控件即可(例如,使用runat =「server」標籤)。

+0

如果我使用$ .load()方法加載多個頁面,每個頁面都有相同的用戶控件,它仍然很好嗎? –

+0

@Steven Zack:您之前的評論讓我相信您不會加載用戶控件,而是加載頁面。您無法使用JQuery的$ .load()函數加載asp .net用戶控件(帶有ascx擴展名的文件)。 – Icarus

+0

@lcarus,你是對的。我用.aspx擴展名加載頁面,但頁面內部有用戶控制。因此,如果我加載了幾個這樣的頁面,每個頁面都具有相同的用戶控件,那麼這仍然很好嗎? –

0

不,文本框不會有相同的ID。由於它們處於不同的用戶控件中,它們將被分配兩個不同的ClientID。

您可以通過查看瀏覽器中頁面的來源來查看控件的ID。 ClientID看起來是這樣的:ctl00_ContentBody_tb1_TextBox1

+0

其實,如果我加載頁面有用戶控制,我無法在視圖菜單中找到它們的源代碼。 –

+0

它看起來不像您在標記中使用的用戶控件。它將是您用戶控件輸出的HTML。但是,您應該能夠在分配用戶控件的ID上進行搜索。它將被嵌入到客戶端ID中。 –

相關問題