我通常只在我的数据网格上使用默认的“选择”,但现在,当用户选择一行时,我需要弹出一个模态弹出窗口。所以,我正在尝试使用ImageButton:
<Columns>
<asp:TemplateField HeaderText="Edit">
<ItemTemplate>
<asp:ImageButton ID="imgbtn" ImageUrl="../Images/edit.png" runat="server" Width="25" Height="25" OnClick="edit_Click" CommandName="Select" />
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="Name" HeaderText="Project Name" />
<asp:BoundField DataField="ProjectCode" HeaderText="Code" />
<asp:TemplateField HeaderText="Access"></asp:TemplateField>
</Columns>
我创建了OnClick事件,它会触发,我认为我可以获得该事件中行的selectedvalue。我通常使用GridView1_SelectedIndexChanged事件。
但我正在努力寻找获得SelectedValue的方法。
protected void edit_Click(object sender, ImageClickEventArgs e)
{
ImageButton btndetails = sender as ImageButton;
GridViewRow gvrow = (GridViewRow)btndetails.NamingContainer;
Session["SelectedUserProjectId"] = ???? // This is where I am trying to get the selected value - but can't find a way to do so.
var pi = int.Parse(Session["SelectedUserProjectId"].ToString());
var ui = int.Parse(Session["SelectedUserId"].ToString());
// Do some calls to get data, populate fields, and then...
this.pnlEdit_ModalPopupExtender.Show();
}
有人可以指导我如何获取GridView的选定值吗?
答案 0 :(得分:2)
您的问题:Can anyone guide me on how to get the selected value of the GridView?
您还需要将ImageButton的CommandArgument
属性设置为所需的Column值。说:ProjectId
:[即ProjectId
应该是您表格中的一列]
<asp:ImageButton ID="imgbtn" ImageUrl="../Images/edit.png" runat="server"
Width="25" Height="25" OnClick="edit_Click" CommandName="Select"
CommandArgument='<%# Eval("ProjectId") %>' />
在edit_Click
事件中,您可以检索为:
protected void edit_Click(object sender, ImageClickEventArgs e)
{
ImageButton btndetails = sender as ImageButton;
Session["SelectedUserProjectId"] = btndetails.CommandArgument;
// Rest of implementation
}
答案 1 :(得分:0)
试试这个::
在aspx中绑定隐藏字段中的Id,然后在代码后面找到隐藏字段并获取值
<Columns>
<asp:TemplateField HeaderText="Edit">
<ItemTemplate>
<asp:ImageButton ID="imgbtn" ImageUrl="../Images/edit.png" runat="server" Width="25" Height="25" OnClick="edit_Click" CommandName="Select" />
<asp:Hiddenfield runat="server" ID="hId" value='<%# Eval("UserProjectId")%>' />
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="Name" HeaderText="Project Name" />
<asp:BoundField DataField="ProjectCode" HeaderText="Code" />
<asp:TemplateField HeaderText="Access"></asp:TemplateField>
</Columns>
中的代码
protected void edit_Click(object sender, ImageClickEventArgs e)
{
ImageButton btndetails = sender as ImageButton;
GridViewRow gvrow = (GridViewRow)btndetails.NamingContainer;
Session["SelectedUserProjectId"] = ((HiddenField)gvrow.FindControl("hId")).Value // This is where I am trying to get the selected value - but can't find a way to do so.
var pi = int.Parse(Session["SelectedUserProjectId"].ToString());
var ui = int.Parse(Session["SelectedUserId"].ToString());
// Do some calls to get data, populate fields, and then...
this.pnlEdit_ModalPopupExtender.Show();
}