如果浏览器是IE,则更改asp.net组件css类

时间:2011-01-06 14:23:04

标签: asp.net

我有一个Gridview其中一个列ItemStyle有一个名为xyz的css类我想将css类更改为xyzie如果浏览器是IE,我该怎么做?

示例代码:

 <asp:GridView ID="GridView1" runat="server" 
    AutoGenerateColumns="False" DataKeyNames="y" 
    DataSourceID="SqlDataSource1" GridLines="None" ShowHeader="False" 
    onselectedindexchanged="GridView1_SelectedIndexChanged" 
    AllowSorting="True" CellSpacing="5" 
    onrowdatabound="GridView1_RowDataBound">
<Columns>
    <asp:BoundField DataField="x" HeaderText="x" SortExpression="x" >
    <ItemStyle CssClass="xyz" /> // want to change this to xyzie if the browser is ie
    </asp:BoundField>
 </Columns>
</asp:GridView>

我使用volpav的答案解决了这个问题,

   System.Web.HttpBrowserCapabilities browser = Request.Browser;
   if (browser.Browser == "IE")
    {
        GridView1.Columns[0].ItemStyle.CssClass = "xyzie";
    }       
    else { GridView1.Columns[0].ItemStyle.CssClass = "xyz"; }

感谢您的帮助。

3 个答案:

答案 0 :(得分:1)

您可以使用特定于IE的conditional comments

这将允许您添加IE特定的类:

<!--[if IE ]>  
  <body class="ie">  
<![endif]-->  
<!--[if !IE]>-->  
  <body>  
<!--<![endif]-->  

在CSS中,您将拥有一个具有特定覆盖行为的ie类。

答案 1 :(得分:1)

如果您想在服务器端执行此操作,则可以使用HttpBrowserCapabilities对象。

HOWTO article

- 帕维尔

答案 2 :(得分:1)

一旦确定了浏览器的类型,就可以动态更改CSS。我对this post的回答可能会有所帮助