ASP.NET----GridView多种用法,以及在后台取对应列的值


在对GridView进行操作时,经常要取一列或者多列的值,比如 点击某一个行的编辑按钮, 对该行数据进行修改。


取数据主键的方法: 比如主键为: DataKeyNames="book_class_id" 


后台可以这样取: this.GV_borrow.DataKeys[1].Value.ToString()


不同用法的GridView的取值方法也不相同。


用法一:

 

 <asp:GridView ID="GVStud" runat="server" DataKeyNames="book_class_id" 
            AllowPaging="True" AutoGenerateColumns="False" CellPadding="4" PageSize="8" 
            ForeColor="#333333" GridLines="None" OnPageIndexChanging="GVStud_PageIndexChanging"
         OnRowEditing="GVStud_RowEditing" OnRowUpdating="GVStud_RowUpdating" 
            OnRowDeleting="GVStud_RowDeleting"    OnRowCancelingEdit="GVStud_RowCancelingEdit" 
           Width="650px" >
            <PagerSettings FirstPageText="第一页" LastPageText="最后页" 
                NextPageText="下一页" PreviousPageText="前一页" />
            <FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
            <Columns>
            <asp:BoundField DataField="book_class_id" HeaderText="编号" ReadOnly="True" />         
            
            
                <asp:TemplateField HeaderText="类名">
                                    <ItemTemplate>
                                        <%# Eval("book_class_name")%>
                                    </ItemTemplate>
                                    <EditItemTemplate>
                                        <asp:TextBox ID="nameEdit" Text='<%# Eval("book_class_name") %>' runat="server" Width="140px" />
                                    </EditItemTemplate>
                                    <ItemStyle Width="150px" />
                                </asp:TemplateField>                             
           
                
                <asp:CommandField HeaderText="操作" 
                    ShowEditButton="True" ButtonType="Button"   UpdateText="修改" >
<ItemStyle Width="100px"></ItemStyle>
                </asp:CommandField>
                  <asp:TemplateField ShowHeader="False">
                    <ItemTemplate>
                        <asp:LinkButton ID="LinkButton1" runat="server" 
                            CommandName="Delete" Text="删除" OnClientClick="return confirm('您确认删除该记录吗?');" CausesValidation="False" ></asp:LinkButton> 
                            
                             
                    </ItemTemplate>
                </asp:TemplateField>
             
        </Columns>
                            <EditRowStyle BackColor="#999999"  />
                            <RowStyle HorizontalAlign="Center" BackColor="#F7F6F3" ForeColor="#333333" Height="20px" />
                            <SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" />
                            <HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
                            <AlternatingRowStyle BackColor="White" ForeColor="#284775" />
        </asp:GridView>



后台事件代码:

 

public void BindStud()
    {
         
        string type = "type";
        string sql = "select * from book_class order by book_class_id ";
        DataSet ds = new DataSet();
        ds = CC.GetDataSet(sql, type);
        GVStud.DataSource = ds.Tables[0];
        GVStud.DataBind();




    }


    protected void GVStud_PageIndexChanging(object sender, GridViewPageEventArgs e)
    {
        this.GVStud.PageIndex = e.NewPageIndex;
        BindStud();
    }


    protected void GVStud_RowEditing(object sender, GridViewEditEventArgs e)
    {

        GVStud.EditIndex = e.NewEditIndex;
        BindStud();
    }


    protected void GVStud_RowUpdating(object sender, GridViewUpdateEventArgs e)
    {
    

    }


    protected void GVStud_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
    {


        GVStud.EditIndex = -1;
        BindStud();


    }




    protected void GVStud_RowDeleting(object sender, GridViewDeleteEventArgs e)
    {}


主键内容值的提取方法:

  

  String id = GVStud.DataKeys[e.RowIndex].Value.ToString();

对应编辑列的值的提取方法:
     

   string type_title = ((TextBox)GVStud.Rows[e.RowIndex].FindControl("nameEdit")).Text.ToString();




用法二:

               <asp:GridView ID="GV_borrow" runat="server" DataKeyNames="borrow_id" 
        AutoGenerateColumns="False" CellPadding="4" 
            ForeColor="#333333" GridLines="None"    OnRowCommand="GV_RowCommand" 
           Width="650px" >
         
            <FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
              <Columns>
                  
                  <asp:BoundField DataField="borrow_id" HeaderText="编号" />
                  <asp:BoundField DataField="book_id" HeaderText="书编号" />
                  <asp:BoundField DataField="book_name" HeaderText="书名" />
                  <asp:BoundField DataField="user_id" HeaderText="借书人" />       
                   <asp:BoundField DataField="value" HeaderText="是否续借" />                
                    <asp:BoundField DataField="borrow_time" HeaderText="借书时间" />  
                  <asp:BoundField DataField="return_time" HeaderText="应还时间" />  
                    <asp:BoundField DataField="borrow_state" HeaderText="状态" />  
                    <asp:BoundField DataField="owe_money" HeaderText="欠款" />  
                    <asp:TemplateField ShowHeader="False">
                    <ItemTemplate>
                      <asp:LinkButton ID="update"  OnClientClick="showUpdate()" runat="server" CausesValidation="false" CommandName="up" CommandArgument='<%# bind("book_id") %>' Text="还书">
                         </asp:LinkButton>
                      
                                 </ItemTemplate>
                             
                                </asp:TemplateField>
                
              </Columns>
               <RowStyle ForeColor="#000066" />
               <FooterStyle BackColor="White" ForeColor="#000066" />
               <PagerStyle BackColor="White" ForeColor="#000066" HorizontalAlign="Left" />
               <SelectedRowStyle BackColor="#669999" Font-Bold="True" ForeColor="White" />
               <HeaderStyle BackColor="#006699" Font-Bold="True" ForeColor="White" />
           </asp:GridView>



CommandArgument传多值
<asp:ImageButton ID="editImageButton" runat="server" ImageUrl="~/images/bt_edit.gif" CommandArgument='<%#Eval("dict_id")+","+Eval("dict_type")%>' οnclick="editImageButton_Click" Height="20" Width="20" /> 

object[] arg=e.CommandArgument.ToString().Split(','); //注意是单引号 
string arg0=arg[0].ToString(); 
string arg1=arg[1].ToString();





在绑定数据时还可以用后台的函数先进行处理:

如下:

   <ItemTemplate>
                                登录名 : 
                                       <%# Eval("login_name")%>
                                       <br />      <br />                 
                                    真实姓名 : 
                                      <%# Eval("real_name")%>
                                      <br />   <br /> 
                                 管理员类别 :<%# getClassName1(DataBinder.Eval(Container.DataItem,"dbo_type").ToString()) %>

.cs中有代码:

 public string getClassName1(string winery_id)
    {
        string type = "dbo_login_type";
        string sql = "select dbo_name from dbo_login_type where dbo_type='" + winery_id + "'";
        DataSet ds = new DataSet();
        ds = CC.GetDataSet(sql, type);
        string ClassName = "";
        ClassName = ds.Tables[0].Rows[0][0].ToString();
        return ClassName;
    }


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

张小凡vip

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值