使用确认警报 ASP.Net 单击 Gridview LinkButton 上的突出显示行
Posted
技术标签:
【中文标题】使用确认警报 ASP.Net 单击 Gridview LinkButton 上的突出显示行【英文标题】:Highlight Row on Gridview LinkButton Clicked with Confirmation Alert ASP.Net 【发布时间】:2016-07-11 18:05:46 【问题描述】:我有删除按钮并确认警报工作正常。但我想在显示警报之前为所选行的背景色着色。它工作正常,并显示 BackColor 为灰色的 View 按钮,因为 View 按钮没有警报。但它没有显示删除按钮的背景颜色已更改,因为它首先发出警报,并且在是时,它会转到 RowCommand 事件。
如何更改删除消息的背景颜色?
<asp:TemplateField HeaderText="Option">
<ItemTemplate>
<asp:LinkButton ID="btnEdit" CommandName="editRecord" Width="14px" Height="14px" aria-label="Left Align"
CommandArgument='<%# Eval("DeptID") + "," + Eval("DeptName")%>' CssClass="" runat="server">
<span class="glyphicon glyphicon-pencil" style="vertical-align:top;"></span>
</asp:LinkButton>
<asp:LinkButton ID="btnDelete" CommandName="deleteRecord" Width="14px" Height="14px"
OnClientClick="javascript:return confirm('Are you sure you want to Delete highlighted row?');"
CommandArgument='<%# Eval("DeptID") + "," + Eval("DeptName")%>' CssClass="" runat="server">
<span class="glyphicon glyphicon-trash" aria-hidden="true"></span>
</asp:LinkButton>
</ItemTemplate>
<ItemStyle CssClass="col-md-1 col-sm-1 col-xs-1 grid-label-text-align grid-height-10"></ItemStyle>
</asp:TemplateField>
--后面的代码
protected void grdDept_RowCommand(object sender, GridViewCommandEventArgs e)
lblMessage.Visible = false;
GridViewRow gvr = (GridViewRow)(((LinkButton)e.CommandSource).NamingContainer);
int RowIndex = gvr.RowIndex;
grdDept.Rows[RowIndex].BackColor = System.Drawing.Color.LightGray;
if (e.CommandName == "editRecord")
string[] commandArgs = e.CommandArgument.ToString().Split(new char[] ',' );
string deptID = commandArgs[0];
string deptName = commandArgs[1];
hfDeptID.Value = deptID;
txtDeptName.Text = deptName;
//btnAdd.Text = "Update";
panel1.Visible = true;
lblMessage.Visible = false;
else if (e.CommandName == "deleteRecord")
string[] commandArgs = e.CommandArgument.ToString().Split(new char[] ',' );
string deptID = commandArgs[0];
if (ChildRecordExist(int.Parse(deptID)) == false)
DepartmentClass dept = new DepartmentClass();
dept.DeptID = int.Parse(deptID);
TransactionOptions options = new TransactionOptions();
options.IsolationLevel = System.Transactions.IsolationLevel.ReadCommitted;
options.Timeout = new TimeSpan(0, 15, 0);
using (TransactionScope tran = new TransactionScope(TransactionScopeOption.Required, options))
if (deptID != "")
if (dept.Delete() == true)
tran.Complete();
panel1.Visible = false;
lblMessage.Visible = false;
LoadAllRecords("");
【问题讨论】:
不清楚您正在寻找什么。我假设您想在用户单击行时突出显示行,对吗? 感谢 Piyush 的回复,我想在用户按下删除按钮时突出显示行。并在按下删除按钮时,它会发出警报“您确定要删除突出显示的行吗?”如果用户按是,则删除记录,否则否。 好的,所以我认为根据您的代码,您只会得到警告框,而不是突出显示行,对吗? 是的,因为客户端的警报首先运行,如果我按是,那么它会转到 RowCommand 事件,我将背景色设置为灰色。 你能试试这个吗,codeproject.com/Articles/24475/… 【参考方案1】:您必须为删除按钮设置一个类名,例如class="delete"
现在添加这个 jquery:
$('.delete').click(function()
$('td').css('background-color', 'white') //change back all tds to their original background.
$(this).closest('tr').css('background-color', 'red');
return confirm('are you sure to delete?');
);
并添加它可以更好地查找所选行:
tr.selectedborder-collapse: collapse;
【讨论】:
【参考方案2】:使用onmousedown
事件突出显示要删除的行,然后使用onclick
事件进行实际删除。
【讨论】:
以上是关于使用确认警报 ASP.Net 单击 Gridview LinkButton 上的突出显示行的主要内容,如果未能解决你的问题,请参考以下文章
在按钮单击文本框值是空的使用 asp.net mvc 显示警报?
Javascript 警报在 asp.net 的更新面板中不起作用
使用asp.net mvc在按钮单击成功时查看包消息无法正常工作?