0

我已經寫了一個擴展標準.NET GridView控件的服務器控件。擴展.NET控件:如何防止HTML atttribute從渲染

但是,默認的標準GridView控件添加了邊界=「0」屬性,它產生的HTML標記,我想阻止這個屬性從我的服務器控件被渲染。

我大概可以使用ScriptManager添加一些Javascript,一旦控件所在的頁面已經加載,就會刪除屬性,但這看起來有點笨重,我希望有人能告訴我如何幹淨地做到這一點例如,通過添加this.Attributes.Remove(「border」);到控制或類似的PreRender事件(這不的方式工作,否則我就不會問這個問題)

+1

看看控件適配器。 – Dai 2012-07-09 17:07:48

+0

我看了一眼在http://www.asp.net/cssadapters/了「的CSS友好適配器」 - 但這適配器,我想其他人也一樣,重寫RenderControl方法和執行自己的代碼進行渲染網格視圖。看起來大規模的矯枉過正只是爲了防止渲染屬性。 – paulH 2012-07-10 11:26:17

回答

0

我使用的DevExpress GridView的,所以可能會有點不同,但我注意到發生了同樣的事情,我說

grid.Attributes["border"] = ""; 

的網頁加載事件,以及邊境HTML不再呈現。有點破解,但它爲我工作。

+0

嘗試過,唯一的影響是,而不是使用邊框=「0」呈現,gridview呈現與border =「1」。請注意,我的問題不在於表格是否顯示邊框,而是關於從呈現的HTML中刪除棄用的邊框屬性。 – paulH 2012-07-10 11:19:30

+0

啊,devexpress完全刪除了邊界屬性,但只能從與網格相關的最外層標記中刪除。我理解你的困惑,我着眼於控制適配器,是的,它似乎有點玩,只是要刪除一個屬性,但有什麼可能,而不是重新創建整個控制渲染,你只是'複製'到適配器並從那裏改變你想要的東西? – 2012-07-11 17:13:32

+0

我不確定你的意思是「複製」它。我必須做更多的研究,我想! – paulH 2012-07-12 09:09:44

2

所有你需要做的是設置Gridlines「無」

是指:在GridViewGridLines財產。

<asp:GridView GridLines="None" /> 

當然,如果你想更好地控制渲染,控制適配器就是你正在尋找的東西。

+0

我已經使用Gridlines =「None」,並且控件仍然以border =「0」呈現。你是說邊界屬性不是爲你渲染的嗎?如果是這樣,我有興趣知道爲什麼。也許gridview是用不同的.net新版本渲染出來的?我目前使用.net 3.5 – paulH 2012-07-10 11:18:40