2011-04-08 19 views
0

我有我試圖轉換爲ASP具體路段:VB.NET到位佔位符ID的真實標識

<asp:LinkButton id="linkColumnsSelect" runat="server" Text="Select CSV Columns for Export" Href="javascript: void(0)" Visible="True" /> 
:LinkBut​​ton的佔位符,這樣我可以它是基於用戶類型的可見性控制

我能夠通過在Href屬性中添加「javascript:void(0)」來刪除PostBackUrl,但是現在我遇到了一個可以在JavaScript中使用的真正ID的問題。就目前而言,這爲ctl00_ContentPlaceHolder1_linkColumnsSelect創建了一個ID,但是我需要該ID在客戶端是「linkColumnsSelect」,並且仍然在服務器端(針對涉及循環的jQuery編碼原因)。那可能嗎?或者我只需要調整我的jQuery來解釋佔位符的ID段呢?

+0

它看起來像我將不得不只考慮我的jQuery較長的ID。我只是不太瞭解這些ID是如何生成的,所以我不確定一旦我開始添加更多的代碼時它們的可預測性如何。 – Dexter 2011-04-08 21:08:24

回答

0

您可以用jQuery做到這一點:

$("*[id$='TextBox1']").show(); 
+0

出於安全原因,我需要將它從客戶端完全隱藏,**包括源代碼**。這就是我改用控制器的原因。 – Dexter 2011-04-08 21:06:14

+0

@Dexter我不明白你想做什麼。是不是你無法引用該項目的問題,因爲該ID是從服務器代碼生成的?我的答案解決了這個問題。順便說一句,你不應該隱藏它與JavaScript,如果它需要隱藏,因爲你可以只是禁用JS,然後你會看到它 – 2011-04-08 21:50:49

+0

對不起,我想我應該已經更清楚我的意圖。實際上,我試圖將此鏈接變爲動態而不是靜態的,以便根據用戶類型顯示或不顯示服務器代碼。我在Javascript中遇到困難的原因是我有幾個隱藏和顯示某些模式對話框的控件,並且添加click事件循環的腳本通過相應的HTML字符串表格等等,使用命名約定這使我可以將這些ID作爲虛擬陣列的一部分來處理。 VB.net使用的命名約定使其變得困難。 – Dexter 2011-04-11 14:40:03