我有以下GridView
<asp:GridView ID="grdImoveis" runat="server" DataSourceID="dsGrid">
<Columns>
<asp:BoundField HeaderText="Nome" DataField="NomeCompleto" />
<asp:ImageButton ID="ibtnAlterar" ImageUrl="../tema/_Internas/icons/edit.png" runat="server" OnClick="btnChange_Click" />
</Columns>
</GridView>
如何在后面的代码中获取此字段的值并将值传递给我的btnChange_Click事件?
答案 0 :(得分:4)
如果你问我的想法,你想要处理你的GridView的OnRowCommand并捕获那里的按钮动作。
<asp:GridView ID="grdImoveis" onrowcommand="grdImoveis_RowCommand" ...
Code-Behind:
protected void grdImoveis_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "BUTTON")
{
// Check value of e.CommandArgument and do something here:
}
}
通过将CommandName
和CommandArgument
设置为您想要传递的值,将图片按钮更改为类似的按钮。您还必须将其包装在TemplateField:
<asp:TemplateField>
<ItemTemplate>
<asp:ImageButton CommandName="BUTTON" CommandArgument='<%#Eval("NomeCompleto") %>' ID="ibtnAlterar" ImageUrl="../tema/_Internas/icons/edit.png" runat="server" />
</ItemTemplate></asp:TemplateField>
答案 1 :(得分:0)
使用像这样的CommandArgument属性
CommandArgument='<%# Container.DataItemIndex %>'
在TemplateField
内,然后在“OnRowCommand”事件处理程序后面的代码中使用它:
protected void gv_RowCommand(object sender, GridViewCommandEventArgs e)
{
object dataItem = gv.Rows[int.Parse(e.CommandArgument.ToString())].DataItem;
}