使用Button从GridView获取ID [英] Get Id from GridView using Button

查看:73
本文介绍了使用Button从GridView获取ID的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

 < div class =row> 
< asp:GridView ID =gvIndexCssClass =table table-bordered table-responsiverunat =serverAllowPaging =TruePageSize =10AutoGenerateColumns =FalseAutoGenerateEditButton =False OnRowCommand = gvIndex_RowCommand >

<列>
< asp:BoundField DataField =IdHeaderText =NúmeroHtmlEncode =false> //这是我的ID字段
< FooterStyle Width =200px/>
< / asp:BoundField>
< asp:BoundField DataField =NombreHeaderText =NombreHtmlEncode =false>
< FooterStyle Width =400px/>
< / asp:BoundField>
< asp:BoundField DataField =DireccionHeaderText =DirecciónHtmlEncode =false>
< FooterStyle Width =400px/>
< / asp:BoundField>
< asp:BoundField DataField =PuestoHeaderText =PuestoHtmlEncode =false>
< FooterStyle Width =400px/>
< / asp:BoundField>
< asp:BoundField DataField =FechaHeaderText =FechaHtmlEncode =false>
< FooterStyle Width =175px/>
< / asp:BoundField>
< asp:BoundField DataField =CorreoElectronicoHeaderText =CorreroElectrónicoHtmlEncode =false>
< FooterStyle Width =350px/>
< / asp:BoundField>

< asp:TemplateField ItemStyle-Horizo​​ntalAlign =CenterHeaderText =Edición>
< ItemTemplate>

< asp:LinkBut​​ton ID =EditarIngresoOnClick =EditarIngreso_ClickCommandArgument =<%Eval('Id')%> CommandName =SelectRowCssClass =btn btn-primaryrunat =server> Editar< / asp:LinkBut​​ton> //我想要获得Id
的值<% - < asp:HyperLink ID =EditarIngresoBorderStyle =NoneOnClick =EditarIngreso_ClickText =Editarrunat =server> ;超链接< / ASP:超链接> - %GT;
<% - < a id =EditarIngresorunat =serverstyle =text-decoration:underline; border:none> Editar< / a> - %>
< / ItemTemplate>
< / asp:TemplateField>
< /列>

< / asp:GridView>
< / div>

正如你所看到的,我想在这一行中获得Id的值:

 < asp:LinkBut​​ton ID =EditarIngresoOnClick =EditarIngreso_ClickCommandArgument =<%Eval('Id')%> CommandName =SelectRowCssClass =btn btn-primaryrunat =server> Editar< / asp:LinkBut​​ton> 

但我不知道这有什么问题,我试着用这个方法来解决它:

  protected void gvIndex_RowCommand(object sender,GridViewCommandEventArgs e)
{
MyID.Value = e.CommandArgument的ToString();
}

但我只收到<%Eval( 'Id')%>而不是我的ID到 MyID.Value



任何帮助是非常感激。问候

解决方案

首先缺少

 < asp:LinkBut​​ton ID =EditarIngresoOnClick =EditarIngreso_ClickCommandArgument =<%#Eval('Id')%> CommandName =SelectRowCssClass =btn btn-primaryrunat =server> Editar< / asp:LinkBut​​ton> 

在Gridview标签中


add DataKeyNames =Id




 < asp:Gridview id = gvIndexDataKeyNames =Id/> 

然后OnClick LinkBut​​ton

  protected void EditarIngreso_Click(object sender,EventArgs e)
{
LinkBut​​ton btn = sender as LinkBut​​ton;
GridViewRow row = btn.NamingContainer as GridViewRow;

string pk = gvIndex.DataKeys [row.RowIndex] .Values [0] .ToString();
//这里PK是你的ID
//将它转换为Int32
}


I have a Grid Where I have Id like this:

<div class="row ">
            <asp:GridView ID="gvIndex" CssClass="table table-bordered table-responsive"  runat="server" AllowPaging="True" PageSize="10" AutoGenerateColumns="False" AutoGenerateEditButton="False" OnRowCommand="gvIndex_RowCommand">

                <Columns>
                    <asp:BoundField DataField="Id" HeaderText="Número" HtmlEncode="false"> //This is my Id Field
                        <FooterStyle Width="200px" />
                    </asp:BoundField>
                    <asp:BoundField DataField="Nombre" HeaderText="Nombre" HtmlEncode="false">
                        <FooterStyle Width="400px" />
                    </asp:BoundField>
                    <asp:BoundField DataField="Direccion" HeaderText="Dirección" HtmlEncode="false">
                        <FooterStyle Width="400px" />
                    </asp:BoundField>
                    <asp:BoundField DataField="Puesto" HeaderText="Puesto" HtmlEncode="false">
                        <FooterStyle Width="400px" />
                    </asp:BoundField>
                    <asp:BoundField DataField="Fecha" HeaderText="Fecha" HtmlEncode="false">
                        <FooterStyle Width="175px" />
                    </asp:BoundField>
                    <asp:BoundField DataField="CorreoElectronico" HeaderText="Correro Electrónico" HtmlEncode="false">
                        <FooterStyle Width="350px" />
                    </asp:BoundField>

                    <asp:TemplateField ItemStyle-HorizontalAlign="Center" HeaderText="Edición">
                        <ItemTemplate>

                            <asp:LinkButton ID="EditarIngreso" OnClick="EditarIngreso_Click" CommandArgument="<% Eval('Id') %>" CommandName="SelectRow"  CssClass="btn btn-primary" runat="server">Editar</asp:LinkButton> //There I want to get value of Id
                            <%--<asp:HyperLink ID="EditarIngreso" BorderStyle="None" OnClick="EditarIngreso_Click" Text="Editar"  runat="server">HyperLink</asp:HyperLink>--%>
                            <%--<a id="EditarIngreso" runat="server" style="text-decoration: underline; border: none">Editar</a>--%>
                        </ItemTemplate>
                    </asp:TemplateField>
                </Columns>

            </asp:GridView>
        </div>

As you can see, I want to get value of Id in this line:

 <asp:LinkButton ID="EditarIngreso" OnClick="EditarIngreso_Click" CommandArgument="<% Eval('Id') %>" CommandName="SelectRow"  CssClass="btn btn-primary" runat="server">Editar</asp:LinkButton> 

But I don't know what is wrong with this, I try to get it with this method:

protected void gvIndex_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            MyID.Value = e.CommandArgument.ToString();
        }

But I just receiving "<%Eval('Id') %>" instead my Id into MyID.Value

Any Help is very appreciate. Regards

解决方案

First missing #

<asp:LinkButton ID="EditarIngreso" OnClick="EditarIngreso_Click" CommandArgument="<%# Eval('Id') %>" CommandName="SelectRow"  CssClass="btn btn-primary" runat="server">Editar</asp:LinkButton> 

In Gridview Tag

add DataKeyNames= "Id"

<asp:Gridview id="gvIndex"  DataKeyNames= "Id" />

Then OnClick of LinkButton

protected void EditarIngreso_Click(object sender,EventArgs e)
{
LinkButton btn = sender as LinkButton ;
GridViewRow row = btn.NamingContainer as GridViewRow;

string pk = gvIndex.DataKeys[row.RowIndex].Values[0].ToString();
  // here PK is your ID 
  // Convert it to Int32
}

这篇关于使用Button从GridView获取ID的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆