C# Asp GridView选择一行,然后触发事件
下面是一个场景 我有一个C# Asp GridView选择一行,然后触发事件,c#,asp.net,gridview,C#,Asp.net,Gridview,下面是一个场景 我有一个GridView,其中包含ID、Name和Type名称已启用并将重定向到其他页面。可以选择整行,并使用jQueryI更改其背景,以便将其识别为选中行 必须选择它的原因是页面上存在链接,例如删除。单击Delete时,它应删除所选行,但如果没有所选行,则不应执行任何操作 这是我的密码: <asp:LinkButton ID="btnDelete" runat="server">Delete</asp:LinkButton> <asp:GridV
GridView
,其中包含ID
、Name
和Type
<代码>名称已启用并将重定向到其他页面。可以选择整行,并使用jQuery
I更改其背景,以便将其识别为选中行
必须选择它的原因是页面上存在链接
,例如删除
。单击Delete
时,它应删除所选行,但如果没有所选行,则不应执行任何操作
这是我的密码:
<asp:LinkButton ID="btnDelete" runat="server">Delete</asp:LinkButton>
<asp:GridView ID="gridView" runat="server" OnRowDataBound="gridView_RowDataBound" OnRowCommand="gridView_Command" AutoGenerateColumns="false" >
<columns>
<asp:BoundField DataField="ID" />
<asp:TemplateField>
<ItemTemplate>
<asp:LinkButton ID="lb1" runat="server" Text='<%# Eval("Name") %>' CommandName="NameButton" CommandArgument='<%# Eval("ID") %>' />
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="Type" />
</columns>
</asp:GridView>
public void gridView_Command(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "NameButton")
{
var id = e.CommandArgument;
// redirect to edit page //
}
}
删除
public void gridView_命令(对象发送方,GridViewCommandEventArgs e)
{
如果(例如,CommandName==“NameButton”)
{
var id=e.CommandArgument;
//重定向到编辑页面//
}
}
我正在使用jQuery
指示选中了一行
我已经有了Delete
事件方法的代码,但我的问题是如何告诉编译器在单击Delete
时当前选择了一行
我正在考虑使用一个
隐藏字段
,在jQuery
上,我将把隐藏字段的值设置为所选行的ID
。但是,我仍然不知道该怎么做。我想您正在搜索的是命令参数…您只需将
Id
using命令参数从前端传递到代码文件,然后就可以轻松地将其删除。这很简单。您可以将SelectedIndex
存储在隐藏字段中,并通过索引查找GridViewRow
在标记中添加隐藏字段,并将事件方法附加到链接按钮:
<asp:LinkButton ID="btnDelete" OnClick="btnDelete_Click" runat="server">Delete</asp:LinkButton>
<asp:HiddenField ID="hdnIndex" runat="server" />
<asp:GridView ID="gridView" runat="server" OnRowDataBound="gridView_RowDataBound"
OnRowCommand="gridView_RowCommand" AutoGenerateColumns="false">
<Columns>
<asp:BoundField DataField="ID" />
<asp:TemplateField>
<ItemTemplate>
<asp:LinkButton ID="lb1" runat="server" Text='<%# Eval("Name") %>' CommandName="NameButton" CommandArgument='<%# Eval("ID") %>' />
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="Type" />
</Columns>
</asp:GridView>
和LinkButton
的单击事件执行如下操作:
protected void btnDelete_Click(object sender, EventArgs e)
{
int index = 0;
int id = 0;
if (int.TryParse(hdnIndex.Value, out index))
{
GridViewRow gvr = gridView.Rows[index];
if (gvr != null && int.TryParse(gvr.Cells[0].Text, out id) )
{
// id is available here
// do wahtever you want with the id
// even you can delete the record from db by id
}
}
}
对不起,我不明白。如何传递
Id
?
protected void btnDelete_Click(object sender, EventArgs e)
{
int index = 0;
int id = 0;
if (int.TryParse(hdnIndex.Value, out index))
{
GridViewRow gvr = gridView.Rows[index];
if (gvr != null && int.TryParse(gvr.Cells[0].Text, out id) )
{
// id is available here
// do wahtever you want with the id
// even you can delete the record from db by id
}
}
}