ASP.NET 动态数据教程-自定义列表列与记录

作者:vkvi 来源:ITPOW(原创) 日期:2009-5-11

一、在列表页自定义字段

  • 在列表页中找到 GridView,设置 AutoGenerateColumns 属性值为 false,添加 TemplateField。
  • 这样我们就可以实现:自定义哪些列的显示,自定义列的顺序,自定义列中文字的格式……
<asp:GridView ID="GridView1" runat="server" DataSourceID="GridDataSource" AllowPaging="True"
                AllowSorting="True" CssClass="gridview" AutoGenerateColumns="false">
                <Columns>
                    <asp:TemplateField>
                        <ItemTemplate>
                            <asp:HyperLink ID="EditHyperLink" runat="server" NavigateUrl='<%# table.GetActionPath(PageAction.Edit, GetDataItem()) %>'
                                Text="编辑" />&nbsp;<asp:LinkButton ID="DeleteLinkButton" runat="server" CommandName="Delete"
                                    CausesValidation="false" Text="删除" OnClientClick='return confirm("Are you sure you want to delete this item?");' />&nbsp;<asp:HyperLink
                                        ID="DetailsHyperLink" runat="server" NavigateUrl='<%# table.GetActionPath(PageAction.Details, GetDataItem()) %>'
                                        Text="详细信息" />
                        </ItemTemplate>
                    </asp:TemplateField>
                    <asp:TemplateField HeaderText="标识">
                        <ItemTemplate>
                            <%# Eval("Id") %>
                        </ItemTemplate>
                    </asp:TemplateField>
                </Columns>

二、在列表页自定义记录

用户 U1 看到的是这个表的这些记录,用户 U2 看到的是这个表的那些记录……

同样在列表页,在 Page_Load 中添加:

protected void Page_Load(object sender, EventArgs e)
{
    GridDataSource.AutoGenerateWhereClause = false;
    GridDataSource.Where = "Title.Length > 2";

这里用的是 LINQ 的内容,所以 Where 值不是像 SQL 的 Len(Title) > 2,而是像 C# 一样的 Title.Length > 2。

相关阅读

相关文章