zoukankan      html  css  js  c++  java
  • GridView常用操作及注意点

    删除功能

    第一种实现删除方式

    1.删除弹出确认框,一般可以采取LinkButton,在其OnClientClick事件里添加

                    <Columns>
                        <asp:BoundField DataField="ID" HeaderText="ID" />
                        <asp:BoundField DataField="Name" HeaderText="人员名称" />
                        <asp:BoundField DataField="Leader" HeaderText="直接领导" />
                        <asp:BoundField DataField="Leader2" HeaderText="间接领导" />
                        <asp:TemplateField>
                            <ItemTemplate>
                                <asp:LinkButton ID="lbtnDelete" OnClientClick="return confirm('你确认要删除?')" CommandName="del"
                                    runat="server" Text="删除"></asp:LinkButton>
                            </ItemTemplate>
                        </asp:TemplateField>
                        <asp:TemplateField>
                            <ItemTemplate>
                                <asp:LinkButton ID="lbtnEdit" CommandName="ed" OnClientClick='<%# "ShowEdit("+Eval("ID")+")" %>'
                                    runat="server" Text="编辑"></asp:LinkButton>
                            </ItemTemplate>
                        </asp:TemplateField>

    注意: Delete Button的CommandName不要设置为Delete,否则有可能会出现错误 ,其Delete的操作代码可以写在RowCommand里,如

     protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            try
            {
                if (e.CommandName == "del")
                {
                    GridViewRow row = (GridViewRow)((Control)e.CommandSource).Parent.Parent;
                    string sLoginName = row.Cells[1].Text;
                    string sID = row.Cells[0].Text;
                    RemoveUser(sLoginName);
                    if (!DeletePeoInfoItem(Convert.ToInt32(sID)))
                    {
                        AlterMessage("删除不成功,请稍后再试!");
                    }
                    BindGridView();
                }
                if (e.CommandName == "ed")
                {
                    BindGridView();
                }
            }
            catch (Exception ex)
            {
                string sMessage = ex.Message;
                AlterMessage("操作不成功,请稍后再试!");
            }
        }
    

    第二种实现删除方式:

    下面的是另一种方式实现删除,其操作性及灵活性比较强,当多个GridView的时候,其会将更加之方便

      前台代码:

                                        <asp:TemplateField HeaderText="" >
    <ItemTemplate>
    <asp:Button ID="btnDelete" Text="删除" CssClass="btn" runat="server" OnClick="btnDelete_Click" />
    </ItemTemplate>
    <ItemStyle HorizontalAlign="Center" width="100"/>
    <HeaderStyle HorizontalAlign="Center" />
    </asp:TemplateField>

     后台代码:

    protected void btnDelete_Click(object sender, EventArgs e)
    {
    Button btnDelete = ((Button)((sender as Button).Parent.Parent as GridViewRow).FindControl("btnDelete"));
    Label LabelID = ((Label)((sender as Button).Parent.Parent as GridViewRow).FindControl("LabelID"));
    Label lblFormTypeDo = ((Label)((sender as Button).Parent.Parent as GridViewRow).FindControl("lblFormTypeDo"));
    SPList list = null;
    string strTitle = lblFormTypeDo.Text;
    。。。。。。。。。。。
    }

    分页:

    做法: GridView启用内置的分页代码,要设置AllowPaging属性

        private void GVPropertiesSetting()
    {
    this.GridView1.PageSize = 15;
    this.GridView1.AllowPaging = true;
    this.GridView1.AutoGenerateColumns = false;
    this.GridView1.PagerSettings.Mode = PagerButtons.NumericFirstLast;
    this.GridView1.PagerSettings.FirstPageText = "首页";
    this.GridView1.PagerSettings.LastPageText = "末页";
    this.GridView1.PagerSettings.NextPageText = "下一页";
    this.GridView1.PagerSettings.PreviousPageText = "上一页";
    this.GridView1.DataKeyNames = new string[] { "ID" };

    }

     同时还要写其PageIndexChanging方法代码,如

        protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
    {
    this.GridView1.PageIndex = e.NewPageIndex;
    if (ViewState["DataSource"] != null)
    {
    this.GridView1.DataSource = (DataTable)ViewState["DataSource"];
    this.GridView1.DataBind();
    }
    }

    编辑功能
     当其有编辑的功能时,要实时刷新,可以采取让其编辑的OnClientClick事件window.showModalDialog,其服务器事件OnClick重新加载数据,事例如下:

    其中GetSelectValue,是后台的一个方法

         function ShowEditNode() {
    window.showModalDialog('Organizedeal.aspx?ID=' + <%=GetSelecteValue() %>+ '&action=edit', window, 'dialogWidth:400px;dialogHeight:200px;status:no;help:no;');
    }
    <asp:ImageButton ID="imgBtnEdit" runat="server" ImageUrl="images/edit.gif" BorderStyle="None"
    ToolTip="编辑项" OnClick="imgBtnEdit_Click" OnClientClick="ShowEditNode();"/>
        public string GetSelecteValue()
    {
    if (ViewState["SelectedID"] != null)
    {
    return ViewState["SelectedID"].ToString();
    }
    return string.Empty;

    }

     编辑事件,如果要绑定其一些值,可以像如下那样绑定

                            <ItemTemplate>
     <asp:LinkButton Text="编辑" runat="server" ID="lbnEdit"
    OnClick="lbnEdit_Click" OnClientClick='<%# "ShowEdit(\""+Eval("Code")+"\")" %>'/>

    </ItemTemplate>
  • 相关阅读:
    使用VS进入源码调试
    Nlog配置
    一个极简的爬虫
    简单的调用图灵机器人
    docker部署netcore项目 nginx负载均衡
    windows nginx负载均衡
    windows服务器环境配置redis sentinel部署
    ASP.NET资源大全-知识分享
    ABP动态生成WebAPI
    windows服务器环境下安装redis
  • 原文地址:https://www.cnblogs.com/gzh4455/p/2417892.html
Copyright © 2011-2022 走看看