在GridView中应该用分页、编辑、删除、更新操作

来源:互联网 发布:淘宝网鞋子内增高 编辑:程序博客网 时间:2024/05/16 10:12

 

ASPX

<asp:GridView ID="gvwDepartments" runat="server" OnRowCancelingEdit="gvDepartment_RowCancelingEdit"
                OnRowEditing="gvDepartment_RowEditing" OnRowUpdating="gvDepartment_RowUpdating"
                OnRowDeleting="gvDepartment_RowDeleting">
                <Columns>
                    <asp:TemplateField HeaderText="部门名称">
                        <EditItemTemplate>
                            <asp:TextBox ID="txtDepName" runat="server" Text='<%# Bind("Name") %>'></asp:TextBox>
                            <asp:RequiredFieldValidator ID="rfvDepartment" runat="server" ControlToValidate="txtDepName"
                                ErrorMessage="请填写部门名称。"></asp:RequiredFieldValidator>
                            <asp:HiddenField ID="hfID" runat="server" Value='<%# Bind("ID") %>' />
                        </EditItemTemplate>
                        <ItemTemplate>
                            <asp:Label ID="Label1" runat="server" Text='<%# Bind("Name") %>'></asp:Label>
                            <asp:HiddenField ID="hfID" Value='<%# Bind("ID") %>' runat="server" />
                        </ItemTemplate>
                        <ItemStyle Width="400px" />
                    </asp:TemplateField>
                    <asp:TemplateField ShowHeader="False">
                        <EditItemTemplate>
                            <asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="True" CommandName="Update"
                                Text="更新"></asp:LinkButton>
                            <asp:LinkButton ID="LinkButton2" runat="server" CausesValidation="False" CommandName="Cancel"
                                Text="取消"></asp:LinkButton>
                        </EditItemTemplate>
                        <ItemTemplate>
                            <asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="False" CommandName="Edit"
                                Text="编辑"></asp:LinkButton>
                            <asp:LinkButton ID="LinkButton2" runat="server" CausesValidation="False" CommandName="Delete"
                                Text="删除" OnClientClick="return confirm('确定删除该部门信息吗?');"></asp:LinkButton>
                        </ItemTemplate>
                    </asp:TemplateField>
                </Columns>
            </asp:GridView>

要注意的是这几个事件一定不可少
分页:OnPageIndexChanging
编辑:OnRowEditing
更新:OnRowUpdating
退出编辑:OnRowCancelingEdit
删除:OnRowDeleting

在后台类中对其进行定义,实现事件的操作。(下面是.CS文件)

    protected void Page_Load(object sender, EventArgs e)
    
{
        
if(!Page.IsPostBack)
             Bind();       
        
     }

    
protected void Button1_Click(object sender, EventArgs e)
    
{
         SMoney s
= new SMoney();
         s.ID
= 0;
         s.UserID
= int.Parse("1");
         s.S_Money
= int.Parse(TextBox2.Text);
         s.S_Bak
= TextBox3.Text;
         s.DataTime
= DateTime.Now;
         SqlCom uc
= new SqlCom();
         uc.MoneyInto(s);

         Response.Redirect(
"SrMoney.aspx", true);
     }

    
//绑定分页
    protected void PageIndexChang(object sender, System.Web.UI.WebControls.GridViewPageEventArgs e)
    
{
         GridView1.PageIndex
= e.NewPageIndex;
         Bind();
     }


    
//点击更新后的效果
    protected void gvDepartment_RowEditing(object sender, GridViewEditEventArgs e)
    
{
         BeginEditDepartment(e.NewEditIndex);
     }


    
protected void gvDepartment_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
    
{
         CancelEditDepartment();
     }

    
private void BeginEditDepartment(int rowIndex)
    
{
         GridView1.EditIndex
= rowIndex;
         Bind();
     }

    
private void CancelEditDepartment()
    
{
         GridView1.EditIndex
= -1;
         Bind();
     }


    
//更新内容
    protected void gvDepartment_RowUpdating(object sender, GridViewUpdateEventArgs e)
    
{
        
if (IsValid)
        
{
             UpdateDepartment(e.RowIndex);
         }

     }

    
//删除内容
    protected void gvDepartment_RowDeleting(object sender, GridViewDeleteEventArgs e)
    
{
        
//DeleteDepartment(e.RowIndex);
     }


    
private void UpdateDepartment(int rowIndex)
    
{
         GridViewRow row
= GridView1.Rows[rowIndex];
         SMoney up
= new SMoney();
         HiddenField hfID
= (HiddenField)row.Cells[0].FindControl("hfID");
         TextBox upTextBox
= (TextBox)row.Cells[0].FindControl("upTextBox");
         up.ID
= int.Parse(hfID.Value.ToString());
         up.S_Money
= int.Parse("333");
         up.S_Bak
= upTextBox.Text.Trim();
        
try
        
{
             SqlCom upd
= new SqlCom();
             upd.MoneyUpdate(up);
         }

        
catch (Exception ex)
        
{
            
return;
         }

         GridView1.EditIndex
= -1;
         Bind();
     }


    
private void Bind()
    
{
         SqlCom sc
= new SqlCom();
         DataSet ds
= sc.MoneySelect();
         GridView1.DataSource
= ds;
         GridView1.DataBind();
     }