rt

解决方案 »

  1.   

    GridView中添加了一个按钮,单击该按钮时怎样获得对应行的各项值?比如第一列
      

  2.   

     protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            if (e.CommandName == "Display")
            {
                DataRow isplay_Row = ((DataRow)((Button)e.CommandSource).Parent.Parent);
            }
        }所在行的按钮的父控件的父控件按钮->单元格->行
      

  3.   

    只要取出同行的值就行了,比如取出第二行,字段为name的值
    怎么取?
      

  4.   

     protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            if (e.CommandName == "Display")
            {
                DataRow isplay_Row = ((DataRow)((Button)e.CommandSource).Parent.Parent);
                isplay_Row["name"].ToString();
            }     }当前行name字段
      

  5.   

    出现错误,无法将...Control转换为DataRow
      

  6.   

     //我是新手,不知对不对
        protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            int liRow;
            string lsField;
            if (e.CommandName == "ShowDetail")
            {
                liRow= Convert.ToInt32(e.CommandArgument);
                lsField = GridView1.Rows[liRow].Cells[3].Text;
               
            }
        }
      

  7.   


    using System;
    using System.Data;
    using System.Configuration;
    using System.Collections;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;public partial class test : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!this.IsPostBack)
            {
                GridBind();
            }
        }    public void GridBind()
        {
            DataTable dt = new DataTable();
            dt.Columns.Add(new DataColumn("数字", typeof(int)));
            dt.Columns.Add(new DataColumn("平方", typeof(int)));
            dt.Columns.Add(new DataColumn("立方", typeof(int)));        DataRow dr;        for (int count = 1; count <= 10; count++)
            {
                dr = dt.NewRow();
                dr[0] = count;
                dr[1] = count * count;
                dr[2] = count * count * count;
                dt.Rows.Add(dr);
            }        GridView1.DataSource = dt;
            GridView1.DataBind();
        }
        protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            if (e.CommandName == "Display")
            {
                GridViewRow isplay_Row = (GridViewRow)((Button)e.CommandSource).Parent.Parent;
                string select1 = ((Label)isplay_Row.FindControl("数字")).Text;//数字
                string select2 = ((Label)isplay_Row.FindControl("平方")).Text;//平方
                string select3 = ((Label)isplay_Row.FindControl("立方")).Text;//立方
            }       }
    }
      

  8.   

    我用GridView1_SelectedIndexChanged实现了,但不喜欢这样
      

  9.   

    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="test.aspx.cs" Inherits="test" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
        <title>无标题页</title>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
            <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" CellPadding="4"
                ForeColor="#333333" GridLines="None" OnRowCommand="GridView1_RowCommand" ShowHeader="False">
                <FooterStyle BackColor="#1C5E55" Font-Bold="True" ForeColor="White" />
                <Columns>
                    <asp:TemplateField>
                        <EditItemTemplate>
                            <asp:TextBox ID="TextBox3" runat="server" Text='<%# Bind("数字") %>'></asp:TextBox>
                        </EditItemTemplate>
                        <ItemTemplate>
                            <asp:Label ID="数字" runat="server" Text='<%# Bind("数字") %>'></asp:Label>
                        </ItemTemplate>
                    </asp:TemplateField>
                    <asp:TemplateField>
                        <EditItemTemplate>
                            <asp:TextBox ID="TextBox2" runat="server" Text='<%# Bind("平方") %>'></asp:TextBox>
                        </EditItemTemplate>
                        <ItemTemplate>
                            <asp:Label ID="平方" runat="server" Text='<%# Bind("平方") %>'></asp:Label>
                        </ItemTemplate>
                    </asp:TemplateField>
                    <asp:TemplateField>
                        <EditItemTemplate>
                            <asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("立方") %>'></asp:TextBox>
                        </EditItemTemplate>
                        <ItemTemplate>
                            <asp:Label ID="立方" runat="server" Text='<%# Bind("立方") %>'></asp:Label>
                        </ItemTemplate>
                    </asp:TemplateField>
                    <asp:TemplateField ShowHeader="False">
                        <ItemTemplate>
                            <asp:Button ID="Button1" runat="server" CausesValidation="false" CommandName="Display"
                                Text="Display" />
                        </ItemTemplate>
                    </asp:TemplateField>
                </Columns>
                <RowStyle BackColor="#E3EAEB" />
                <EditRowStyle BackColor="#7C6F57" />
                <SelectedRowStyle BackColor="#C5BBAF" Font-Bold="True" ForeColor="#333333" />
                <PagerStyle BackColor="#666666" ForeColor="White" HorizontalAlign="Center" />
                <HeaderStyle BackColor="#1C5E55" Font-Bold="True" ForeColor="White" />
                <AlternatingRowStyle BackColor="White" />
            </asp:GridView>
        
        </div>
        </form>
    </body>
    </html>
      

  10.   

    gdstx 的写法也对,不过要在绑定事件中给button加参数  protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
        {        if (e.Row.RowType == DataControlRowType.DataRow)
            {
                ((Button)e.Row.FindControl("Button1")).CommandArgument = e.Row.RowIndex.ToString();
            }
        }