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