为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

SMILET 2018-09-12 05:06:05
服务器控件gridview扩展,为什么不能应用皮肤?做了一个Demo,我就是简单的继承Gridview.比如叫mygridview但是mygridview的皮肤再设置skinid的时候就会没有效果.用的vs05.自己扩展的就不能用皮肤了吗?
查看完整描述

2 回答

?
泛舟湖上清波郎朗

TA贡献1818条经验 获得超3个赞

你要先确认是控件的问题还是 皮肤写的有问题、你先那微软自己的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" %>
 


查看完整回答
反对 回复 2018-09-25
?
素胚勾勒不出你

TA贡献1827条经验 获得超9个赞

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

查看完整回答
反对 回复 2018-09-25
  • 2 回答
  • 0 关注
  • 393 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信