试图在 Gridview 选定的索引更改上显示确认弹出窗口

Posted

技术标签:

【中文标题】试图在 Gridview 选定的索引更改上显示确认弹出窗口【英文标题】:Trying to show confirmation popup on Gridview selected index change 【发布时间】:2019-01-12 12:15:01 【问题描述】:

我正在尝试在Gridview Selected index changed 上显示一个弹出窗口。

留言DO you want to Submit?。如果我按确定然后做一些工作或者如果我取消然后什么都不做留在同一页面上。

//网格视图

 <asp:GridView ID="gvCustomers" runat="server" AutoGenerateColumns="false" Font-Names="Arial"  AutoGenerateSelectButton="True" 
  Font-Size="10pt" RowStyle-BackColor="White" OnSelectedIndexChanged="gvCustomers_SelectedIndexChanged" 
  Cssclass="gvv table table-striped table-bordered">
   <HeaderStyle CssClass="bg-clouds"  BackColor ="#9c27b0"  ForeColor ="white"/>
     <Columns>
       <asp:BoundField ItemStyle-Width="150px" DataField="T_NO" HeaderText="T_NO" SortExpression="T_NO" />    
       <asp:BoundField ItemStyle-Width="150px" DataField="FORMNAME" HeaderText="FORMNAME" HeaderStyle-CssClass="hideGridColumn" ItemStyle-CssClass="hideGridColumn" />
       <asp:BoundField ItemStyle-Width="150px" DataField="STATUS" HeaderText="STATUS" HeaderStyle-CssClass="hideGridColumn" ItemStyle-CssClass="hideGridColumn" />
     </Columns>
 </asp:GridView> 

//aspx.cs

protected void gvCustomers_SelectedIndexChanged(object sender, EventArgs e)
  
   string T_NO = gvCustomers.SelectedRow.Cells[1].Text;
   string Status = gvCustomers.SelectedRow.Cells[3].Text;
   if (Status=="sent")
   
    string message = "Do you want to Submit?";
    System.Text.StringBuilder sb = new System.Text.StringBuilder();
    sb.Append("return confirm('");
    sb.Append(message);
    sb.Append("');");
    ClientScript.RegisterOnSubmitStatement(this.GetType(), "alert", 
    sb.ToString());
    
 

任何关于如何实现这一点的想法将不胜感激。

【问题讨论】:

你的代码有什么问题?您选择的索引更改事件执行了吗? @Alander 是选择的索引更改事件执行但不弹出 您的警报现在没有显示,这就是问题所在。我说的对吗? 看看这个:aspsnippets.com/Articles/… 你将无法用纯服务器端代码做你想做的事 【参考方案1】:

使用OnRowDataBound 事件让gridview 绑定你的java 脚本函数。

protected void myGridView_RowDataBound(object sender, GridViewRowEventArgs e) 
 
  if (e.Row.RowType == DataControlRowType.DataRow) 
   
     DataRowView drv = (DataRowView)e.Row.DataItem;
     e.Row.Attributes.Add("onclick", "selectedindexchanged()");
   

像这样在 html &lt;head&gt; 标签中创建一个 selectedindexchanged javascript 函数。

<script>
    function selectedindexchanged()
</script>

现在,当您单击网格视图行时,将调用 selectedindexchanged。这将帮助您显示警报消息。

【讨论】:

以上是关于试图在 Gridview 选定的索引更改上显示确认弹出窗口的主要内容,如果未能解决你的问题,请参考以下文章

如何更改 ListView/GridView 中选定行的文本颜色? (使用 Expression Dark 主题)

Flutter:根据所选类别在 GridView 内显示值

在 Asp.Net c# 中更新 gridview

如何在 Devexpress MVC GridView 上获取选定的行?

如何更改组合框选定值的显示顺序

DataGridView 中当前选定行的索引