GridView使用心得

摘要:
1.ItemStyle Wrap=“False”按“编辑”后,将显示“更新”和“取消”。列宽太大,无法自动换行,这很难看。2.传递参数时,DefaultValue=“”字符串只能留有空格。如果它是DefaultValue=“”,它将是Nothing˂asp:ControlParameterControlID=“Name”Na

1.ItemStyle-Wrap="False"
   按了Edit后,会出现Update和Cancel,列宽大了,居然给自动换行,这样就不好看了
   GridView使用心得第1张

GridView使用心得第2张

2.传parameter的时候,DefaultValue=" "字符串中留有空格才行,如果是DefaultValue="",传进去的将是Nothing
<SelectParameters>
 <asp:ControlParemeter ControlID="Name" Name="Name" PropertyName="Text" Type="String" DefaultValue=" ">
...
<asp:Parameter Name="maxinumRows" Type="Int32">
<asp:Parameter Name="startRowIndex" Type="Int32">
<asp:Parameter Name="sortBy" Type="String" DefaultValue=" ">
</SelectParameters>
 
3.GridView1的隐藏列DataKeyNames="Id"
<asp:GridView runat="server" ... DataKeyNames="Id">
在后台可以使用GridView1.DataKeys(index).value来得到它

Protected Sub GridView1_RowCommand(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewCommandEventArgs) Handles GridView1.RowCommand
  Select Case e.CommandName
      Case "Edit"
            Dim index as Int32=Convert.ToInt32(e.CommandArgument)
            Dim id as Integer=CInt(GridView1.DataKeys(index).value)
            ...
     Case "Update"
     Case "Delete"
     Case "Cancel"
   End Select
End Sub

3.给界面上的DropDown List或GridView指定数据源时,少使用 DataSourceID,尽量使用DataSource

 因为指定DataSourceID是自动绑定数据源,当用Jquery改变了里面的option选项,总会导致被ObjectDataSource覆盖

 甚至当GridView点Edit button,也会在后台自动调用

DataSourceID:

<asp:TemplateField HeaderText="test2" SortExpression="Lv2">
                <ItemTemplate>
                    <%# Eval("Lv2")%>
                </ItemTemplate>
                <EditItemTemplate>
                    <asp:dropdownlist ID="test2" width="148px" runat="server" Text='<%# Bind("Lv2") %>' DataSourceID="dsTest" DataTextField ="Info"  DataValueField ="Code">
                     </asp:dropdownlist>
                </EditItemTemplate>
                <ItemStyle Width="150px" />
</asp:TemplateField>
 
<asp:ObjectDataSource ID="dsTest" runat="server"  SelectMethod="getInitDT" TypeName="SettingPage">
      <SelectParameters>
             <asp:Parameter Name="ddl_type"  Type="Int32" DefaultValue="0" />
      </SelectParameters>
</asp:ObjectDataSource>
 
DataSource
<asp:TemplateField HeaderText="test1" SortExpression="Lv1" >
                <ItemTemplate>
                    <%# Eval("Lv1")%>
                </ItemTemplate>
                <EditItemTemplate>
                    <asp:dropdownlist ID="test1"  width="148px" runat="server" Text='<%# Bind("Lv1") %>'   DataSource = "<%#getInitDT(0)%>" DataTextField ="Info"  DataValueField ="Code">
                     </asp:dropdownlist>
                </EditItemTemplate>
                <ItemStyle Width="150px" />
            </asp:TemplateField>
test1.DataSource = getInitDT(0)
test1.DataBind()

4.指定排序列的Style

<asp:GridView>
     ...
	    <SortedAscendingCellStyle BackColor="White" />
            <SortedAscendingHeaderStyle  BackColor="White" ForeColor="Black" />
            <SortedDescendingCellStyle BackColor="Yellow" />
            <SortedDescendingHeaderStyle BackColor="Yellow" ForeColor="Black"  />
 </asp:GridView>

 GridView使用心得第3张

5.自動排序

   <asp:GridView ID="HistoryGridView" runat="server" AutoGenerateColumns="False"
        CellPadding="4" DataSourceID="ObjectDataSource" ForeColor="#333333"
        GridLines="None" AllowPaging="True" AllowSorting="True" Width="100%" 
        DataKeyNames="Id,Code" 
        onrowdatabound="HistoryGridView_RowDataBound" >
        <RowStyle BackColor="#EFF3FB" HorizontalAlign="Center" />
        <Columns>
            <asp:TemplateField ShowHeader="False">
                <ItemTemplate>
                    <asp:LinkButton ID="deleteLink" runat="server" Enabled="false" CausesValidation="False" OnClientClick="if(!this.disabled) return confirm('Are you sure to delete this record?')"
                        CommandArgument='<%# Container.DisplayIndex %>' Text="Delete" OnClick="deleteLink_Click"></asp:LinkButton>
                </ItemTemplate>
            </asp:TemplateField>
            <asp:BoundField DataField="Name" HeaderText="Name" ReadOnly="True" SortExpression="Name"  />
            <asp:BoundField DataField="PeriodDate" HeaderText="Period" ReadOnly="True"
                SortExpression="PeriodDate" DataFormatString="{0:MM/yyyy}" />
            <asp:HyperLinkField Text="View" DataNavigateUrlFields="PeriodDate,Id" DataNavigateUrlFormatString="~/Leave/DownloadFile?d={0:yyyyMMdd}&e={1}&flag=false" />
            <asp:CommandField />
        </Columns>
        <FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
        <PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" />
        <SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" />
        <HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
        <EditRowStyle BackColor="#2461BF" />
        <AlternatingRowStyle BackColor="White" />
    </asp:GridView>
    <asp:ObjectDataSource ID="ObjectDataSource" runat="server" 
        SelectCountMethod="GetHistoriesCount" 
        SelectMethod="GetHistories" TypeName="Common.BLL.TestBLL" 
        onselecting="HistoryObjectDataSource_Selecting" SortParameterName="SortExpression" >
        <SelectParameters>
            <asp:Parameter Name="IdList"/>
        </SelectParameters>
    </asp:ObjectDataSource>

7.另類排序

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        ResultGridView.Attributes.Add("Sort", "latestupdatedate desc")
            bind()
    End Sub

    Protected Sub ResultGridView_Sorting(ByVal sender As Object, ByVal e As GridViewSortEventArgs) Handles ResultGridView.Sorting
        ResultGridView.EditIndex = -1
        If ResultGridView.Attributes("Sort") = e.SortExpression + " desc" Then
            ResultGridView.Attributes("Sort") = e.SortExpression
        Else
            ResultGridView.Attributes("Sort") = e.SortExpression + " desc"
        End If
        bind()

    End Sub

  Dim dv As DataView = New DataView(dt)
  dv.Sort = ResultGridView.Attributes("Sort")
  ResultGridView.DataSource = dv

8.空data和page size

    <asp:GridView runat="server" AutoGenerateColumns="False"
        CellPadding="4" DataSourceID="ObjectDataSource" ForeColor="#333333"
        GridLines="None" AllowPaging="True" AllowSorting="True" Width="100%"  EmptyDataText="Empty Data !"
        DataKeyNames="TransferPeriodDate,EmployerId" PageSize = "20" >
  ...
 </asp:GridView>

免责声明:文章转载自《GridView使用心得》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇win10 mysql5.7指定某个配置文件启动flex布局space-between(around)最后一行左对齐下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

三层架构下GridView控件实现增删改查

三层架构下GridView控件实现增删改查 转自:https://blog.csdn.net/iteye_3224/article/details/82373073 第一步:建立三层,并添加他们之间的引用关系,如下图所示: 第二步:添加GridView表格,并且套用格式样式,如下图所示: 第三步:点击表格右侧的小三角,并选中编辑列,如下图...

十一、ASP.NET Boilerplate

一、ASP.NET Boilerplate 实体是 DDD(领域驱动设计)的核心概念之一。Eric Evans 是这样描述的“很多对象不是通过它们的属性定义的,而是通过一连串的连续性事件和标识定义的”(引用领域驱动设计一书)。 译者注:对象不是通过它们的属性来下根本性的定义,而应该是通过它的线性连续性和标识性定义的。 所以,实体是具有唯一标识的ID且存储...

关于任意文件下载及上传漏洞

目录 任意文件读取下载 1、原理 2、利用方式 3、漏洞修复 4、实例 任意文件上传 1、原理 2、分类 3、基本思路 4、基本绕过方式 1、客户端检测绕过(javascript 检测) 2、服务端验证绕过(MIME 类型检测) 3、代码注入绕过--getimagesize() 4、路径/扩展名绕过 5、安全防范 6、图片二次渲染 7、...

iis发布网站可能遇到的问题及解决方法

虚拟机上网问题:桥接模式:跟物理机使用的同一个物理网卡(以太网) 虚拟机跟物理机的ip要在同一段,就可以上网了 NAT模式:虚拟机设置ip要改成自动获取,就可以上网 这样虚拟机跟物理机就不是同一个段的ip 虚拟机网络编辑器:桥接模式里面可以选择是桥接有限网卡连接还是桥接无线网卡连接 想要使用域名访问网站,需要安装DNS服务,域名解析为ip地址 Iis发布...

ASP.NET网站实现多语言版本 【转】

一、项目概述      1、目的            利用资源文件解决网站多语言版本的问题,在制作网站的时候,经常会遇到多种语言的版本,早期在asp的系统当中,很多网站开发师都会用传统的方法来开发,就是将同一套程序复制两份,功能是实现了,但往往后期的维护带来很大的麻烦,而在asp.net的时代,做这样的事情,原来是那么的简单.      2、概念    ...

asp.net(C#) 编码解码(HtmlEncode与HtmlEncode)

Default.aspx <%@PageValidateRequest="false"Language="C#"AutoEventWireup="true"CodeFile="Default.aspx.cs"Inherits="test_Default"%><!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Tr...