2

I'm new to ASP.NET and I am using GridView to display data on a web page. I also added a button in Gridview called process orders.

<asp:GridView ID="GridView1" runat="server" autogenerateselectbutton="True"     GridLines="None" AllowPaging ="true" 
        OnRowCommand="GridView1_RowCommand" OnSelectedIndexChanged="GridView1_SelectedIndexChanged" 
        >

        <Columns>

    <asp:TemplateField>
  <ItemTemplate>
    <asp:Button ID="Process" runat="server" 
      CommandName="processorders" 
CommandArgument="<%# ((GridViewRow) Container).RowIndex %>"
      Text="Process orders" />
  </ItemTemplate> 
</asp:TemplateField>


        </Columns>
        </asp:GridView>

I used the row command method to get the selected index of the row.

protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
    {
    if (e.CommandName == "processorders")
        {
    // Retrieve the row index stored in the 
    // CommandArgument property.
            int index = Convert.ToInt32(e.CommandArgument);
    }

Also I've implemented selectedIndexChanged method for the default select button:

protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
    {
        GridViewRow row = GridView1.SelectedRow;
        txtbox.Text = "You selected " + row.Cells[3].Text + ".";
    }

If I try to use the GridViewRow in GridView1_RowCommand I get a null pointer exception. The row is always null but it works fine in GridView1_SelectedIndexChanged. What am I trying to achieve is, get the column value from the selected row using my Process button and then use that value to update a database. I don't want to do it using Select. And is there any way I can use row.Cells[] without specifying the index. I want to get the value of a column name. Help? Please ??

MAK
  • 1,250
  • 21
  • 50
  • look at this http://stackoverflow.com/questions/6503339/get-row-index-on-asp-net-rowcommand-event –  May 23 '15 at 17:24

0 Answers0