在我的asp.net application (v4.0)
中,我有一个网格视图。我使用列表对象将数据绑定到网格视图。
在网格视图中,有一个取消按钮。单击取消按钮后,应用程序应向用户弹出一条消息,要求确认以继续进行取消。即。您确定要取消记录吗?当用户选择是时,则应取消特定记录。
现在的问题是,当用户选择是时,我需要获取单击了取消按钮的行的索引,并且需要将其从用于绑定网格的列表对象中删除并重新绑定gridview。
请让我知道如何实现。
感谢所有答复。我使用自定义弹出窗口,而不是内置的'confirm'方法。自定义弹出窗口将具有“确定”和“取消”按钮控件。仅在单击“确定”按钮时,我需要获取选定的记录索引。某些回复中提到的内置确认方法将不适合我的情况。请让我知道如何实现。
向页面添加隐藏字段
<asp:HiddenField ID="HiddenField1" runat="server" />
使用记录的Id(使用相应的列名代替Id)作为取消的CommandArgument按钮
<asp:Button ID="btncancel" runat="server" CommandArgument='<%#Eval("Id") %>' Text="Cancel" />
然后单击取消按钮,它将调用gridviews rowcommand函数。在该函数中,将CommandArgument值保留在隐藏字段中,如下所示
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
HiddenField1.Value = e.CommandArgument.ToString();
}
然后单击确定按钮,它将调用单击事件。在该函数中,从列表中删除项目,然后将列表再次绑定到gridview
protected void btnOK_Click(object sender, ButtonClickEventArgs e)
{
string id = HiddenField1.Value;
//use this id to remove the data from the List
// bind the gridview
}
尝试一下..
您可以使用javascript函数。
<asp:Button ID="Button1" runat="server" onclientclick="Validate(this) />
在页面中声明HTML隐藏字段...
<input id="Hidden1" type="hidden" runat="server" clientidmode="static"/>
function Validate(obj) {
var r = confirm("are you sure you want to cancel ?");
if (r == true) {
var id = obj.id.toString();
var index = id.split("_");
var RowNumber = index[2].toString();
document.getElementById('Hidden1').value=RowNumber ;
}
else {
return;
}
}
这里我们得到的按钮的id
有点像ContentPlacedholde_Button1_0
。然后我们将其拆分以获得索引。
像这样在取消按钮上使用命令名称和命令参数:
<asp:Button ID="btncancel" runat="server" CommandArgument='<%#Eval("Id") %>' CommandName="Cancel" Text="Cancel" />
然后在gridviewRowcommand上使用此:
if (e.CommandName == "Cancel")
{
int count = GridViewName.Rows.Count;
for (int i = 0; i < count; i++)
{
int id = Convert.ToInt32(e.CommandArgument);
}
}
您是否尝试过将CommandArgument
值添加到代表该项目的取消按钮,例如ID?然后onclick,显示一个弹出窗口,如果用户选择是,则使用ID从集合中删除该项目,然后简单地重新绑定网格。该物品将消失。