首页 新闻 会员 周边

服务器控件gridview扩展,为什么不能应用皮肤?

0
悬赏园豆:20 [已解决问题] 解决于 2010-08-25 10:50

服务器控件gridview扩展,为什么不能应用皮肤?

做了一个Demo,我就是简单的继承Gridview.比如叫mygridview
但是mygridview的皮肤再设置skinid的时候就会没有效果.
用的vs05.
自己扩展的就不能用皮肤了吗?

蝗虫的大腿的主页 蝗虫的大腿 | 初学一级 | 园豆:22
提问于:2010-08-23 16:17
< >
分享
最佳答案
0

你要先确认是控件的问题还是 皮肤写的有问题、你先那微软自己的GridView 测试下你的皮肤看看是否有效,

扩展控件, 除非你是 Override 了基类的功能,一般 不会改变基类的功能的。

看看我这个例子:

先看效果:


上面的是自定义控件MyGridView ,下面的是 GridView
MyGridView 控件代码:
   [ ToolboxData("<{0}:MyGridView id=MyGridView1 runat=server ></{0}:MyGridView>")]
    public class MyGridView:GridView
    {

    }
页面代码:
<%@ Page Language="C#" AutoEventWireup="true" Theme="MainSkin" Codebehind="Default.aspx.cs" Inherits="WebFormHost._Default" %>

<%@ Register Assembly="WebFormHost" Namespace="WebFormHost" TagPrefix="asp" %>

       <div>
            <asp:MyGridView ID="MyGridView1" runat="server">
            </asp:MyGridView>
            <asp:GridView ID="GridView1" runat="server">
            </asp:GridView>
            </div>
    </form>

CS 代码:
     void BindGridView()
        {
            DataTable table = new DataTable();

            table.Columns.Add("ID");

            DataRow row = table.NewRow();

            row["ID"] = "A";

            table.Rows.Add(row);

            this.MyGridView1.DataSource = table;
            this.MyGridView1.DataBind();

            this.GridView1.DataSource = table;
            this.GridView1.DataBind();
        }


皮肤代码:

<%@ Register Assembly="WebFormHost" Namespace="WebFormHost" TagPrefix="asp" %>
<asp:MyGridView runat="server" BackColor="Red" />
<asp:GridView runat="server"  BackColor="Gray" />

这样就可以,
可能出现问题的地方是:
1. 页面没应用皮肤 Theme="MainSkin"
2.皮肤文件没引用
<%@ Register Assembly="WebFormHost" Namespace="WebFormHost" TagPrefix="asp" %>
 
收获园豆:20
HUHU慈悲 | 大侠五级 |园豆:9973 | 2010-08-23 16:24
你说的我都测试过了.就是这样写. public class MyGridView : GridView { } 写不行.所以我怀疑是vs05的问题,还是扩展了就不知道了?
蝗虫的大腿 | 园豆:22 (初学一级) | 2010-08-23 16:32
看我上面的例子
HUHU慈悲 | 园豆:9973 (大侠五级) | 2010-08-24 14:09
非常感谢你的回答,又加了10分给您.主要是皮肤文件那的问题. 不知道那也要注册. "2.皮肤文件没引用 <%@ Register Assembly="WebFormHost" Namespace="WebFormHost" TagPrefix="asp" %> "
蝗虫的大腿 | 园豆:22 (初学一级) | 2010-08-25 10:50
其他回答(1)
0

gridview的样式一般都是通过属性来设置的,你重载时把相关样式属性设置一遍。

Astar | 园豆:40805 (高人七级) | 2010-08-23 16:31
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册