一、在列表页自定义字段
- 在列表页中找到 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="编辑" /> <asp:LinkButton ID="DeleteLinkButton" runat="server" CommandName="Delete"
CausesValidation="false" Text="删除" OnClientClick='return confirm("Are you sure you want to delete this item?");' /> <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。
相关阅读