18 个解决方案
#1
加一个属性 把这个Gridview 露出来,这样就能用UserControl.Gridview访问Gridview了。
#2
封装成自定义控件,并把绑定方法写在基类中,要用到的都继承这个基类,应该可行,没有试过,
期待更好的答案...
期待更好的答案...
#3
请问下怎么加?有例子可以看么?
#4
请高手帮忙啊
#5
public GridView MyGridView
{
get { return GridView1; }
set { GridView1 = value; }
}
在自定义控件后台代码中写个属性,在使用控件的页面的后台 用户控件ID.MyGridview来访问,
{
get { return GridView1; }
set { GridView1 = value; }
}
在自定义控件后台代码中写个属性,在使用控件的页面的后台 用户控件ID.MyGridview来访问,
#6
UP。
#7
把绑定gridview的数据源设置成public,即可在每个页面访问
#8
OrderDetail.ascx.cs:
protected void Page_Load(object sender, EventArgs e)
{
}
private DataSet dsOrderDetail;
public DataSet DSOrderDetail
{
get { return dsOrderDetail; }
set { dsOrderDetail = value; }
}
#region 获取订单清单
public void BindOrderDetail()
{
GridView1.DataSource = DSOrderDetail;
GridView1.DataBind();
}
#endregion
OrderDetail.ascx:
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="OrderDetail.ascx.cs"
Inherits="Web.Controls.OrderDetail" %>
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" GridLines="Horizontal"
OnRowDataBound="GridView1_RowDataBound" ShowFooter="True">
<FooterStyle HorizontalAlign="Right" />
<Columns>
<asp:HyperLinkField DataNavigateUrlFields="ProductID" DataNavigateUrlFormatString="~/ShowProductDetail.aspx?ProductID={0}"
DataTextField="ProductName" HeaderText="商品名称" NavigateUrl="~/ShowProductDetail.aspx"
Target="productinfo">
<HeaderStyle HorizontalAlign="Center" />
</asp:HyperLinkField>
<asp:BoundField DataField="OriginalPrice" DataFormatString="{0:c}" HeaderText="原价"
HtmlEncode="False">
<HeaderStyle HorizontalAlign="Center" />
</asp:BoundField>
<asp:BoundField DataField="SellPrice" DataFormatString="{0:c}" HeaderText="售价" HtmlEncode="False">
<HeaderStyle HorizontalAlign="Center" />
</asp:BoundField>
<asp:TemplateField HeaderText="数量">
<ItemTemplate>
<asp:Label ID="lblQuantity" runat="server" Text='<%#Eval("Quantity") %>'></asp:Label>
</ItemTemplate>
<FooterTemplate>
<span class="msg">
总数量:<asp:Label ID="lblSumQuantity" runat="server" Text="0"></asp:Label> 总价格:<asp:Label
ID="lblSumProductPrice" runat="server" Text="0.00"></asp:Label></span>
</FooterTemplate>
<ItemStyle HorizontalAlign="Center" />
</asp:TemplateField>
<asp:BoundField DataField="TotalSellPrice" HeaderText="总售价" HtmlEncode="False">
<HeaderStyle HorizontalAlign="Center" />
</asp:BoundField>
</Columns>
</asp:GridView>
protected void Page_Load(object sender, EventArgs e)
{
}
private DataSet dsOrderDetail;
public DataSet DSOrderDetail
{
get { return dsOrderDetail; }
set { dsOrderDetail = value; }
}
#region 获取订单清单
public void BindOrderDetail()
{
GridView1.DataSource = DSOrderDetail;
GridView1.DataBind();
}
#endregion
OrderDetail.ascx:
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="OrderDetail.ascx.cs"
Inherits="Web.Controls.OrderDetail" %>
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" GridLines="Horizontal"
OnRowDataBound="GridView1_RowDataBound" ShowFooter="True">
<FooterStyle HorizontalAlign="Right" />
<Columns>
<asp:HyperLinkField DataNavigateUrlFields="ProductID" DataNavigateUrlFormatString="~/ShowProductDetail.aspx?ProductID={0}"
DataTextField="ProductName" HeaderText="商品名称" NavigateUrl="~/ShowProductDetail.aspx"
Target="productinfo">
<HeaderStyle HorizontalAlign="Center" />
</asp:HyperLinkField>
<asp:BoundField DataField="OriginalPrice" DataFormatString="{0:c}" HeaderText="原价"
HtmlEncode="False">
<HeaderStyle HorizontalAlign="Center" />
</asp:BoundField>
<asp:BoundField DataField="SellPrice" DataFormatString="{0:c}" HeaderText="售价" HtmlEncode="False">
<HeaderStyle HorizontalAlign="Center" />
</asp:BoundField>
<asp:TemplateField HeaderText="数量">
<ItemTemplate>
<asp:Label ID="lblQuantity" runat="server" Text='<%#Eval("Quantity") %>'></asp:Label>
</ItemTemplate>
<FooterTemplate>
<span class="msg">
总数量:<asp:Label ID="lblSumQuantity" runat="server" Text="0"></asp:Label> 总价格:<asp:Label
ID="lblSumProductPrice" runat="server" Text="0.00"></asp:Label></span>
</FooterTemplate>
<ItemStyle HorizontalAlign="Center" />
</asp:TemplateField>
<asp:BoundField DataField="TotalSellPrice" HeaderText="总售价" HtmlEncode="False">
<HeaderStyle HorizontalAlign="Center" />
</asp:BoundField>
</Columns>
</asp:GridView>
#9
正解!
#10
UP
#11
up
#12
实现公用?
#13
学习
#14
Up
#15
楼主请参考
#16
这个问题最起码要考虑“在外部调用这个UserControl控制其中gridview的显示字段”这个问题的初衷是什么。最起码要想清楚这样做了之后要怎样设计才能达到最终目的。如果每一个页面放自己做出的ascx反倒比每一个放一个gridview还麻烦,足可以证明这个ascx最初的设计太想当然了。
#17
不妨先抛开ascx,说清楚当你每一个页面上都放置一个GridView之后,你是如何“控制其中gridview的显示字段”的,然后也就知道当把所做出的ascx来替换gridview之后,你的那种在每一个页面上看都很*的“控制显示字段”此时是否还能继续施展。
另外,不要太技术化,原来已经写好的页面不要轻易去修改,只有新的页面才一开始就用你的这个ascx。
另外,不要太技术化,原来已经写好的页面不要轻易去修改,只有新的页面才一开始就用你的这个ascx。
#18
UP.
#1
加一个属性 把这个Gridview 露出来,这样就能用UserControl.Gridview访问Gridview了。
#2
封装成自定义控件,并把绑定方法写在基类中,要用到的都继承这个基类,应该可行,没有试过,
期待更好的答案...
期待更好的答案...
#3
请问下怎么加?有例子可以看么?
#4
请高手帮忙啊
#5
public GridView MyGridView
{
get { return GridView1; }
set { GridView1 = value; }
}
在自定义控件后台代码中写个属性,在使用控件的页面的后台 用户控件ID.MyGridview来访问,
{
get { return GridView1; }
set { GridView1 = value; }
}
在自定义控件后台代码中写个属性,在使用控件的页面的后台 用户控件ID.MyGridview来访问,
#6
UP。
#7
把绑定gridview的数据源设置成public,即可在每个页面访问
#8
OrderDetail.ascx.cs:
protected void Page_Load(object sender, EventArgs e)
{
}
private DataSet dsOrderDetail;
public DataSet DSOrderDetail
{
get { return dsOrderDetail; }
set { dsOrderDetail = value; }
}
#region 获取订单清单
public void BindOrderDetail()
{
GridView1.DataSource = DSOrderDetail;
GridView1.DataBind();
}
#endregion
OrderDetail.ascx:
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="OrderDetail.ascx.cs"
Inherits="Web.Controls.OrderDetail" %>
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" GridLines="Horizontal"
OnRowDataBound="GridView1_RowDataBound" ShowFooter="True">
<FooterStyle HorizontalAlign="Right" />
<Columns>
<asp:HyperLinkField DataNavigateUrlFields="ProductID" DataNavigateUrlFormatString="~/ShowProductDetail.aspx?ProductID={0}"
DataTextField="ProductName" HeaderText="商品名称" NavigateUrl="~/ShowProductDetail.aspx"
Target="productinfo">
<HeaderStyle HorizontalAlign="Center" />
</asp:HyperLinkField>
<asp:BoundField DataField="OriginalPrice" DataFormatString="{0:c}" HeaderText="原价"
HtmlEncode="False">
<HeaderStyle HorizontalAlign="Center" />
</asp:BoundField>
<asp:BoundField DataField="SellPrice" DataFormatString="{0:c}" HeaderText="售价" HtmlEncode="False">
<HeaderStyle HorizontalAlign="Center" />
</asp:BoundField>
<asp:TemplateField HeaderText="数量">
<ItemTemplate>
<asp:Label ID="lblQuantity" runat="server" Text='<%#Eval("Quantity") %>'></asp:Label>
</ItemTemplate>
<FooterTemplate>
<span class="msg">
总数量:<asp:Label ID="lblSumQuantity" runat="server" Text="0"></asp:Label> 总价格:<asp:Label
ID="lblSumProductPrice" runat="server" Text="0.00"></asp:Label></span>
</FooterTemplate>
<ItemStyle HorizontalAlign="Center" />
</asp:TemplateField>
<asp:BoundField DataField="TotalSellPrice" HeaderText="总售价" HtmlEncode="False">
<HeaderStyle HorizontalAlign="Center" />
</asp:BoundField>
</Columns>
</asp:GridView>
protected void Page_Load(object sender, EventArgs e)
{
}
private DataSet dsOrderDetail;
public DataSet DSOrderDetail
{
get { return dsOrderDetail; }
set { dsOrderDetail = value; }
}
#region 获取订单清单
public void BindOrderDetail()
{
GridView1.DataSource = DSOrderDetail;
GridView1.DataBind();
}
#endregion
OrderDetail.ascx:
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="OrderDetail.ascx.cs"
Inherits="Web.Controls.OrderDetail" %>
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" GridLines="Horizontal"
OnRowDataBound="GridView1_RowDataBound" ShowFooter="True">
<FooterStyle HorizontalAlign="Right" />
<Columns>
<asp:HyperLinkField DataNavigateUrlFields="ProductID" DataNavigateUrlFormatString="~/ShowProductDetail.aspx?ProductID={0}"
DataTextField="ProductName" HeaderText="商品名称" NavigateUrl="~/ShowProductDetail.aspx"
Target="productinfo">
<HeaderStyle HorizontalAlign="Center" />
</asp:HyperLinkField>
<asp:BoundField DataField="OriginalPrice" DataFormatString="{0:c}" HeaderText="原价"
HtmlEncode="False">
<HeaderStyle HorizontalAlign="Center" />
</asp:BoundField>
<asp:BoundField DataField="SellPrice" DataFormatString="{0:c}" HeaderText="售价" HtmlEncode="False">
<HeaderStyle HorizontalAlign="Center" />
</asp:BoundField>
<asp:TemplateField HeaderText="数量">
<ItemTemplate>
<asp:Label ID="lblQuantity" runat="server" Text='<%#Eval("Quantity") %>'></asp:Label>
</ItemTemplate>
<FooterTemplate>
<span class="msg">
总数量:<asp:Label ID="lblSumQuantity" runat="server" Text="0"></asp:Label> 总价格:<asp:Label
ID="lblSumProductPrice" runat="server" Text="0.00"></asp:Label></span>
</FooterTemplate>
<ItemStyle HorizontalAlign="Center" />
</asp:TemplateField>
<asp:BoundField DataField="TotalSellPrice" HeaderText="总售价" HtmlEncode="False">
<HeaderStyle HorizontalAlign="Center" />
</asp:BoundField>
</Columns>
</asp:GridView>
#9
正解!
#10
UP
#11
up
#12
实现公用?
#13
学习
#14
Up
#15
楼主请参考
#16
这个问题最起码要考虑“在外部调用这个UserControl控制其中gridview的显示字段”这个问题的初衷是什么。最起码要想清楚这样做了之后要怎样设计才能达到最终目的。如果每一个页面放自己做出的ascx反倒比每一个放一个gridview还麻烦,足可以证明这个ascx最初的设计太想当然了。
#17
不妨先抛开ascx,说清楚当你每一个页面上都放置一个GridView之后,你是如何“控制其中gridview的显示字段”的,然后也就知道当把所做出的ascx来替换gridview之后,你的那种在每一个页面上看都很*的“控制显示字段”此时是否还能继续施展。
另外,不要太技术化,原来已经写好的页面不要轻易去修改,只有新的页面才一开始就用你的这个ascx。
另外,不要太技术化,原来已经写好的页面不要轻易去修改,只有新的页面才一开始就用你的这个ascx。
#18
UP.