我有一個div元素,我想從代碼中更改它的dir屬性。 問題是我無法在div上設置runat=server
屬性,所以無法從代碼訪問它。從代碼訪問div元素
使用asp.net,c#,框架4.0。
有什麼想法?
謝謝。
我有一個div元素,我想從代碼中更改它的dir屬性。 問題是我無法在div上設置runat=server
屬性,所以無法從代碼訪問它。從代碼訪問div元素
使用asp.net,c#,框架4.0。
有什麼想法?
謝謝。
如果你不希望設置div來runat="server"
這樣你就可以做到以下幾點:
<div dir='<%= GetDir() %>'>
Your text
</div>
,並在後面的代碼您可以使用以下代碼設置方向:
if(You Condition)
{
return "ltr";
}
else
{
return "rtl";
}
是的,你不能訪問頁面上的客戶端元素,只能訪問服務器端(asp.net是面向服務器的框架)。客戶端控件被編譯爲Literal
控件,其中包含html。
如果您不想爲runat="server"
屬性設置div
屬性,您可以register client script編輯您的divs內容。
如果您設置了runat="server"
屬性,併爲其設置了ID="YOUR_DIV_ID_HERE"
,則該名稱將可從代碼YOUR_DIV_ID_HERE
下訪問。
使用jquery和回調函數來調用服務器端函數。
您可以在HTML元素上設置runat =「server」屬性。只做了一個本地演示,工作得很好。它將被表示爲HtmlGenericControl(http://msdn.microsoft.com/en-us/library/7512d0d0(v=VS.100).aspx)。
編輯:你說你不能用runat =「server」從代碼中訪問元素。我不知道爲什麼這會是一個問題,因爲html渲染應該沒有什麼不同。也許它與客戶端id改變的元素有關?如果你依賴這個,你可以嘗試爲你的div設置ClientIdMode = Static。
如果你願意,你可以做到這一點也
<div><%= your server variable %> </div>
爲什麼你說你不能設置runat =「server」?正如我記得WebForms這是可能的(你會得到無類型的HtmlControl對象)。 – oryol
我有一個網格unger這個div,我循環這個網格,並改變網格上的東西。如果這個div被設置爲runat = server,那麼這個循環會搞砸。不知道爲什麼.. –
@ Itay.B:然後我建議你開始一個單獨的問題,以瞭解爲什麼runat = div上的服務器會擾亂網格上的循環。 – Heinzi