• ASP.Net GridView 基础 Template模板


    一、了解Template

    AlternatingItemTemplate定义交替行的内容和外观,如果没有规定模板,则使用ItemTemplate;
    EditItemTemplate定义当前正在编辑的行的内容和外观。该模板包含输入字段,而且还可能包含验证程序;
    FooterTemplate定义该行的页脚的内容和外观;
    HeaderTemplate定义该行的标题的内容和外观;
    ItemTemplate定义该行的默认内容和外观。

    二、模板应用

     

     

    aspx代码

    <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
                DataKeyNames="ConferenceNo,VerNum,AttendeeCategory,Attendee" 
                DataSourceID="SqlDataSource1" onrowcommand="GridView1_RowCommand" 
                onrowdatabound="GridView1_RowDataBound" 
                onrowcreated="GridView1_RowCreated">
                <Columns>
                    其它字段
                    <asp:TemplateField>
                        <ItemTemplate>
                            <asp:Button ID="btnDel" runat="server" 
                                CommandArgument='<%# Eval("ConferenceNo") %>' onclick="btnDel_Click" 
                                Text="del" />
                            <asp:LinkButton ID="LinkButton1" runat="server" 
                                CommandArgument='<%# Eval("ConferenceNo") %>' CommandName="2">Link1</asp:LinkButton>
                            <asp:LinkButton ID="LinkButton2" runat="server" CommandName="3">Link2</asp:LinkButton>
                            <asp:LinkButton ID="LinkButton3" runat="server" 
                                CommandArgument='<%# ((GridViewRow)Container).RowIndex %>' CommandName="4">Link3</asp:LinkButton>
                            <asp:LinkButton ID="LinkButton4" runat="server">Link4</asp:LinkButton>
                        </ItemTemplate>
                    </asp:TemplateField>
                    <asp:ButtonField CommandName="1" Text="按钮"  />
                </Columns>
            </asp:GridView>  

     aspx.cs代码

            /// <summary>
            /// 2、模板中自定义Button和CommandArgument
            /// </summary>
            protected void btnDel_Click(object sender, EventArgs e)
            {
                string strCommandArgument = ((Button)sender).CommandArgument;
                ClientScript.RegisterStartupScript(this.GetType(), "alter", "alert('" + strCommandArgument + "')",true);
            }
    
            /// <summary>
            /// 1、ButtonField和RowCommand
            /// </summary>
            protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
            {
                //1、ButtonField和RowCommand
                if (e.CommandName == "1") 
                {
                    //在ButtonField中CommandArgument属性是当前行索引(RowIndex)不需要开发人员设置
                    int intRowIndex = int.Parse(e.CommandArgument.ToString());
                    string strConferenceNo = GridView1.Rows[intRowIndex].Cells[0].Text.ToString();
                    ClientScript.RegisterStartupScript(this.GetType(), "alter", "alert('" + strConferenceNo + "')", true);
                }
                //3、模板中自定义Button和RowCommand
                if (e.CommandName == "2")
                {
                    //自定义Button中CommandArgument属性是开发人员设置
                    string strConferenceNo = e.CommandArgument.ToString();
                    ClientScript.RegisterStartupScript(this.GetType(), "alter", "alert('" + strConferenceNo + "')", true);
                }
    
                //4、模板中自定义Button和RowCommand
                if (e.CommandName == "3")
                {
                    //在RowDataBound针对模板中自定义Button的CommandArgument赋值
                    int intRowIndex = int.Parse(e.CommandArgument.ToString());
                    string strConferenceNo = GridView1.Rows[intRowIndex].Cells[0].Text.ToString();
                    ClientScript.RegisterStartupScript(this.GetType(), "alter", "alert('" + strConferenceNo + "')", true);
                }
    
                //5、模板中自定义Button和RowCommand
                if (e.CommandName == "4")
                {
                    //CommandArgument='<%# ((GridViewRow)Container).RowIndex %>'
                    int intRowIndex = int.Parse(e.CommandArgument.ToString());
                    string strConferenceNo = GridView1.Rows[intRowIndex].Cells[0].Text.ToString();
                    ClientScript.RegisterStartupScript(this.GetType(), "alter", "alert('" + strConferenceNo + "')", true);
                }
            }
            /// <summary>
            /// 行绑定事件
            /// 1、常用于行选择事件注册
            /// 2、特殊数据处理
            /// </summary>
            protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
            {
                //4、针对模板中自定义Button的CommandArgument赋值
                if (e.Row.RowType == DataControlRowType.DataRow)
                {
                    LinkButton lnk = (LinkButton)e.Row.FindControl("LinkButton2");
                    lnk.CommandArgument = e.Row.RowIndex.ToString();
                }
            }
    
            /// <summary>
            /// GridView行创建后
            /// </summary>
            protected void GridView1_RowCreated(object sender, GridViewRowEventArgs e)
            {
                //5、针对模板中自定义Button的CommandArgument赋值
                if (e.Row.RowType == DataControlRowType.DataRow)
                {
                    LinkButton lnk = (LinkButton)e.Row.FindControl("LinkButton4");
                    lnk.Click += new EventHandler(lnk_Click);//按+=再按2次Tab键,实现快速注册事件
                }
            }
    
            void lnk_Click(object sender, EventArgs e)
            {
                //获取当前行
                GridViewRow grdRow = (GridViewRow)((LinkButton)sender).Parent.Parent;
                string strConferenceNo = grdRow.Cells[0].Text.ToString();
                ClientScript.RegisterStartupScript(this.GetType(), "alter", "alert('" + strConferenceNo + "')", true);
            }
    

      

  • 相关阅读:
    【2017-03-09】SQL Server 数据库基础、四种约束
    【2017-03-05】函数基础、函数四种结构、ref和out参数、递归
    procecss on技巧
    角度与弧度
    C语言求π的方法
    三轴加速度传感器角度值转换原理
    C获取数组长度
    如何使用ProcessOn制作思维导图
    processon完全装逼指南
    NORDIC GATT事件
  • 原文地址:https://www.cnblogs.com/WarBlog/p/9156864.html
Copyright © 2020-2023  润新知