获取datagrid中特定行的Id

时间:2014-06-24 09:21:40

标签: c# asp.net

在下面的代码中,我有一个数据网格,其中我有2列useriddocumentid以及一个按钮。 我希望获得特定行的userid ,我该怎么做?

    <asp:DataGrid Width="100%" ID="DocumentUsergrid" 
                       PagerStyle-Mode="NumericPages" PageSize="10" PagerStyle-Visible="true" 
                            AllowPaging="true" AllowSorting="true"  
                        AlternatingRowStyle-CssClass="alt">
                        <AlternatingItemStyle BackColor="White" />
     <asp:TemplateColumn HeaderText="DocumentID" ItemStyle-Width="150px" Visible="false" >                             
                                 <ItemTemplate>                                              
                                  <asp:Label ID="lblOutputProductID_i"  runat="server"  Text='<%#Eval("DocumentID") %>' > </asp:Label>
                                 </ItemTemplate>                                             
                              </asp:TemplateColumn> 

     <asp:TemplateColumn HeaderText="UserID" ItemStyle-Width="150px" Visible="false" >                             
                                 <ItemTemplate>                                              
                                   <asp:Label ID="lblSupportProductID_i"  runat="server"  Text='<%#Eval("UserID") %>' > </asp:Label>
                                 </ItemTemplate>                                             
                              </asp:TemplateColumn> 
    <asp:TemplateColumn HeaderText="Insert" ItemStyle-Width="150px">
                                  <ItemTemplate>                               
                               <asp:Button ID="btnSubmit" runat ="server" OnClick="btnSubmit_Click" /> 
                               </ItemTemplate>  
 </Columns>                       

                  <HeaderStyle Font-Bold="True" ForeColor="White" />
                   <ItemStyle BackColor="#EFF3FB"/>

                </asp:DataGrid>

protected void btnSubmit_Click(object sender, EventArgs e)
{
    try
    {
        Dictionary<string, string> OutputProductVal = new Dictionary<string, string>();
        OutputProductVal.Add("UserID", );//To get userid of particular row
        OutputProductVal.Add("DocumentID", ddlDocumentName.SelectedValue.ToString());
        DocumentServiceClient oProduct = new DocumentServiceClient();
        oProduct.InsertUserDocumentMap(OutputProductVal);
    }
}

2 个答案:

答案 0 :(得分:0)

您可以在网格视图中找到该行的用户ID标签。

foreach(DataGridItem item in DocumentUsergrid.Items)
{
    Label l = item.FindControl("lblSupportProductID_i") as Label;
    string userId = l.Text;
}

答案 1 :(得分:0)

使用类似的commandField列:

在ASPX中

<asp:CommandField ShowSelectButton="True" />

在代码隐藏

处理DocumentUsergrid.SelectedIndexChanged事件以执行您想要的操作。

 protected void DocumentUsergrid_SelectedIndexChanged(object sender, EventArgs e)
 {
 }

在事件代码中,您可以检索如下数据:

row = YOUR_GRID.Rows(e.RowIndex);

有关selectIndexChanged事件的更多信息,请参阅http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.gridview.selectedindexchanged(v=vs.110).aspx