【问题标题】:How can I get selected row cell value of grid view on page?如何在页面上获取网格视图的选定行单元格值?
【发布时间】:2011-05-23 09:48:03
【问题描述】:

我在我的页面上使用网格视图。

我想在页面按钮的点击事件上通过response.write()显示选中行单元格的数据。

【问题讨论】:

  • 您在 gridview 中使用什么类型的库,例如模板字段或绑定字段,或者 .... 更好地放置您的 gridview 标记以获得更好的解决方案:)
  • @Devjosh:列类型是绑定字段。
  • 您必须处理 gridview selected index changed 事件,并在此事件中将单元格的值存储在变量中,然后在按钮单击时获取该值,该变量可以放置在页面的部分 claa 中或控制你正在使用的任何东西。
  • @Devjosh:你能给出完整的编码吗?

标签: asp.net gridview


【解决方案1】:

注意::

  • 请设置您的CommandName 按钮"selectCol"

  • 请设置CommandName 第二个按钮,您将使用 删除

    "deleteCol"

为您的按钮设置command argument 属性:

.aspx

CommandArgument='<%#((GridViewRow)Container).RowIndex%>'
CommandArgument='<%#((GridViewRow)Container).RowIndex%>'

两个按钮。

.cs

 protected void gv_RowCommand(object sender, GridViewCommandEventArgs e)
    {
        try
        {
            int index = Convert.ToInt32(e.CommandArgument);
            if (e.CommandName == "selectCol")
            {
                Response.Write(gv.Rows[index].Cells[0].Text); //consider you use bound field and the column you want to show its value is the first column.
            }

            else if(e.CommandName == "deleteCol")
             {
                 int id = int.Parse(gv.DataKeys[index].Value.ToString());//the primary key for your table.
                 Delete(id);//method which use (Delete From .... Where id = ....).
             }


            gv.DataBind();

        }

        catch (Exception ee)
        {
            string message = ee.Message;
        }
    }

【讨论】:

  • @just_name :感谢 just_name,但它也不会删除任何选定的记录。
  • 你没有告诉我你想删除,你说“我想通过response.write()显示所选行单元格的数据,在页面按钮的点击事件上”
  • stackoverflow.com/q/6054341/760396 请检查,正是我想这样做..
  • ans1- 我正在使用网格标题字段上的删除按钮... 2-DeleteRecord(string word) 是我的方法。我在单词列上存储了单词..
  • 非常好,请在您的链接中发布 aspx(gridview 的一部分)。
【解决方案2】:

问候他。

从 gridview 字段读取值的最简单方法是编写:
your_grid_name.SelectedRow.Cell(*number_of_index*).text

在我的情况下是:

将雇主名称调为字符串
employer_name=poslodavac_grid.SelectedRow.Cells(1).Text

请记住,第一个单元格索引为零,并且不将“asp:CommandField ShowSelectButton”标记计为第一个...

【讨论】:

    【解决方案3】:

    使用GridView.SelectedRow 属性。

    String cellText = this.gridView.SelectedRow.Cells[cellIndex].Text;
    

    请参阅以下内容了解如何在 GridView 控件中选择行。

    Select Command in a GridView Control in ASP.Net

    【讨论】:

    • protected void lnkbtnDelete_Click(object sender, EventArgs e) { String cellText = grdlistWord.SelectedRow.Cells[0].ToString(); Response.Write(cellText.ToString()); }
    • 当我这样做时“对象引用未设置为对象的实例”。发生错误。
    • @divya:我猜你还没有选择一行。你到底在哪里得到错误?
    • String cellText = grdlistWord.SelectedRow.Cells[0].ToString();在这里我收到错误。我通过复选框选择了行
    • @divya:如果您使用另一种方式来选择行会更合适。检查我的答案的附加部分。
    【解决方案4】:

    如果您在网格视图中使用LINK BUTTON,则可以在ROWCOMMAND 方法中使用以下代码。此代码用于检索特定选定行中的所有值。

     // to get the value of the link use the command argument 
     FaultId = Convert.ToInt32(e.CommandArgument);
    
     // to get the other column values 
    
    UserId = Convert.ToInt32(((GridViewRow(((LinkButton)e.CommandSource).NamingContainer)).Cells[1].Text);  
    
    Department = ((GridViewRow(((LinkButton)e.CommandSource).NamingContainer)).Cells[2].Text;
    
    ProblemType = ((GridViewRow)(((LinkButton)e.CommandSource).NamingContainer)).Cells[3].Text;
    

    【讨论】:

      【解决方案5】:

      可以在gridview的RowCommand事件中获取:

      protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
      
      {
          if (e.CommandName == "Select")
          {
              GridViewRow row = (GridViewRow)(((Button)e.CommandSource).NamingContainer);
              Response.Write(row.Cells[0].Text);
              Response.Write(row.Cells[1].Text);
              ................
          }
      }
      

      【讨论】:

      • 我希望按钮单击事件上的选定行不在行命令上
      • 当您单击按钮时,将触发 RowCommand。在这种情况下,你可以做任何你想做的事。另外你需要设置那个按钮 CommandName="Select"
      • 你调试了吗?你进入 if (e.CommandName == "Select")
      • 你能进入这一行吗 Response.Write(row.Cells[0].Text); ?
      • 你能把你的按钮的html贴在这里吗?
      猜你喜欢
      • 1970-01-01
      • 2023-03-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-08
      • 2021-02-27
      • 1970-01-01
      相关资源
      最近更新 更多