使用Button从GridView获取ID [英] Get Id from GridView using Button
本文介绍了使用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-HorizontalAlign =CenterHeaderText =Edición>
< ItemTemplate>
< asp:LinkButton ID =EditarIngresoOnClick =EditarIngreso_ClickCommandArgument =<%Eval('Id')%> CommandName =SelectRowCssClass =btn btn-primaryrunat =server> Editar< / asp:LinkButton> //我想要获得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:LinkButton ID =EditarIngresoOnClick =EditarIngreso_ClickCommandArgument =<%Eval('Id')%> CommandName =SelectRowCssClass =btn btn-primaryrunat =server> Editar< / asp:LinkButton>
但我不知道这有什么问题,我试着用这个方法来解决它:
protected void gvIndex_RowCommand(object sender,GridViewCommandEventArgs e)
{
MyID.Value = e.CommandArgument的ToString();
}
但我只收到<%Eval( 'Id')%>
而不是我的ID到 MyID.Value
任何帮助是非常感激。问候
解决方案
首先缺少#
< asp:LinkButton ID =EditarIngresoOnClick =EditarIngreso_ClickCommandArgument =<%#Eval('Id')%> CommandName =SelectRowCssClass =btn btn-primaryrunat =server> Editar< / asp:LinkButton>
在Gridview标签中
add DataKeyNames =Id
< asp:Gridview id = gvIndexDataKeyNames =Id/>
然后OnClick 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();
//这里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屋!
查看全文