猿问

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

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

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

SMILET
浏览 394回答 2
2回答

泛舟湖上清波郎朗

你要先确认是控件的问题还是 皮肤写的有问题、你先那微软自己的GridView 测试下你的皮肤看看是否有效,扩展控件, 除非你是 Override 了基类的功能,一般 不会改变基类的功能的。看看我这个例子:先看效果:上面的是自定义控件MyGridView ,下面的是 GridView&nbsp;MyGridView 控件代码:&nbsp;&nbsp; [ ToolboxData("<{0}:MyGridView id=MyGridView1 runat=server ></{0}:MyGridView>")]&nbsp;&nbsp;&nbsp; public class&nbsp;MyGridView:GridView&nbsp;&nbsp;&nbsp; {&nbsp;&nbsp;&nbsp; }页面代码:<%@ Page Language="C#" AutoEventWireup="true"&nbsp;Theme="MainSkin"&nbsp;Codebehind="Default.aspx.cs" Inherits="WebFormHost._Default" %><%@ Register Assembly="WebFormHost" Namespace="WebFormHost" TagPrefix="asp" %>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <asp:MyGridView ID="MyGridView1" runat="server">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </asp:MyGridView>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <asp:GridView ID="GridView1" runat="server">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </asp:GridView>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </div>&nbsp;&nbsp;&nbsp; </form>CS 代码:&nbsp;&nbsp;&nbsp;&nbsp; void BindGridView()&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DataTable table = new DataTable();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; table.Columns.Add("ID");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DataRow row = table.NewRow();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; row["ID"] = "A";&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; table.Rows.Add(row);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.MyGridView1.DataSource = table;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.MyGridView1.DataBind();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.GridView1.DataSource = table;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.GridView1.DataBind();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }皮肤代码:<%@ Register Assembly="WebFormHost" Namespace="WebFormHost" TagPrefix="asp" %><asp:MyGridView runat="server" BackColor="Red" /><asp:GridView runat="server"&nbsp; BackColor="Gray" />这样就可以,可能出现问题的地方是:1. 页面没应用皮肤&nbsp;Theme="MainSkin"2.皮肤文件没引用&nbsp;<%@ Register Assembly="WebFormHost" Namespace="WebFormHost" TagPrefix="asp" %>&nbsp;

素胚勾勒不出你

gridview的样式一般都是通过属性来设置的,你重载时把相关样式属性设置一遍。
随时随地看视频慕课网APP
我要回答