Поле подтверждения GridView TemplateField

Я использую gridview с гиперссылкой внутри, чтобы выполнить обратную передачу, чтобы удалить некоторые данные, это мой код

<asp:GridView ID="downloadFilesTable" runat="server" BorderStyle="Solid"
    AutoGenerateColumns="False" DataKeyNames="DOCID" 
    DataSourceID="SqlDataSource1" 
    OnSelectedIndexChanged="downloadFilesTable_SelectedIndexChanged">
    <Columns>
        <asp:BoundField DataField="DOCID" HeaderText="DOCID" InsertVisible="False" ReadOnly="True" SortExpression="DOCID" />
        <asp:BoundField DataField="FILENAME" HeaderText="FILENAME" SortExpression="FILENAME" />
        <asp:BoundField DataField="EXTENSION" HeaderText="EXTENSION" SortExpression="EXTENSION" />
        <asp:HyperLinkField  
            DataNavigateUrlFields="DOCID"
            DataNavigateUrlFormatString="DownloadFile.aspx?id={0}"
            HeaderText="File" 
            Text="Open" />
        <asp:TemplateField HeaderText="File">
            <ItemTemplate>
                <asp:HyperLink runat="server" 
                    NavigateUrl='<%# "~/ViewDocument.aspx?table="
                        + Request.QueryString["table"].ToString() 
                        + "&id=" + Request.QueryString["id"].ToString() 
                        + "&docid=" + Request.QueryString["docid"].ToString() 
                        + "&remove=" + Server.UrlEncode(Eval("docid").ToString())%>' 
                    datanavigateurlfields="docid" 
                    HeaderText="File" 
                    Text="Remove" />
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView>

Пользователь нажмет на гиперссылку ItemTemplate, чтобы удалить данные, но проблема в том, что когда я хочу удалить данные, мне нужно окно подтверждения, если пользователь нажмет да, я удалю данные, это представление сетки, как я не думаю у меня есть доступ к функции onclick, любая подсказка? (например, делать на стороне сервера?) Мы очень ценим любую помощь, заранее спасибо!


person Aaron Lee Herng Yue    schedule 03.04.2018    source источник


Ответы (2)


Каждый раз, когда сетка загружается, она загружает одну строку за раз и имеет событие, которое вы можете использовать, называемое RowDataBound.

Измените свой элемент управления на LinkButton, поскольку он имеет событие OnClientClick.

protected void gvw_RowDataBound(object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowType == DataControlRowType.DataRow) 
    {
        // reference the Delete button. (i think it's cell 4.)
        LinkButton lbtn = (LinkButton)e.Row.Cells[4].Controls[0]; 

        lbtn.OnClientClick = "return confirm('Are you certain you want to delete?');"
    }
}
person wazz    schedule 03.04.2018
comment
Примечание. Я использовал это на встроенной кнопке «Удалить» gridview, поэтому возврат «Нет» автоматически отменял удаление. Я думаю, что это все еще будет работать, но вам нужно решить фактическое удаление. - person wazz; 03.04.2018
comment
Спасибо, но LinkButton lbtn = (LinkButton)e.Row.Cells[4].Controls[0]; вернет ошибку, я изменил ее на LinkButton lbtn = (LinkButton)e.Row.Cells[4].FindControls(linkbutton); - person Aaron Lee Herng Yue; 04.04.2018

Лучше Вы можете использовать всплывающее окно и сделать несколько дизайнов

  <html>
 <head runat="server">
<title></title>
 <link href="CSS/LoginPage.css" type="text/css" rel="Stylesheet" />
<link href="CSS/ModalPopup.css" type="text/css" rel="Stylesheet" />

<style type="text/css">
    .style1
    {
        height: 139px;
    }
    .style2
    {
        width: 298px;
    }
    .style3
    {
        height: 62px;
    }
    .style4
    {
        width: 298px;
        height: 62px;
    }
    .style5
    {
        width: 572px;
    }
    .style6
    {
        width: 572px;
        height: 62px;
    }
</style>
<script language="javascript" type="text/javascript">
</script>
     </head>
     <body>
      <form id="form1" runat="server">
     <table cellpadding="0" cellspacing="0" align="center" 
          style="height: 138px; width: 375px; position: absolute; top: 0px; left: 0px;">
            <tr>
                <td  align="center" id="tdsave" runat="server" class="style1">


                            <div class="ModalDragHeader">
                                <table style="border: thin solid #6FB1E3; width: 376px" >
                                    <tr>
                                        <td  
                                            style="font-family: arial, Helvetica, sans-serif; font-size: medium; font-weight: normal; font-style: normal; font-variant: normal; text-transform: none; color: #FFFFFF;">
                                            Bluekode</td>
                                        <td class="style5">
                                            </td>
                                        <td class="style2">
                                            &nbsp;</td>
                                    </tr>
                                    <tr>
                                        <td class="style3" >
                                            <asp:Image ID="imgmsg" runat="server" Height="45px" Width="64px" /></td>
                                        <td  

                                            style="font-family: arial, Helvetica, sans-serif; color: #000000; font-size: large; font-weight: normal; font-style: normal; font-variant: normal; text-transform: none;" 
                                            class="style6">
                                          <asp:Label ID="LSave" runat="server" Font-Names="arial" Font-Size="Large">You want to delete?</asp:Label></td>
                                        <td  

                                            style="font-family: arial, Helvetica, sans-serif; color: #000000; font-size: large; font-weight: normal; font-style: normal; font-variant: normal; text-transform: none;" 
                                            class="style4">
                                            </td>
                                    </tr>
                                    <tr>
                                        <td >
                                           </td>
                                        <td id="btnbtnok" runat="server">

                                                <asp:Button ID="btnok" runat="server" CssClass="buttonL"  Text="yes" Width="60px" 
                                                    Height="24px" />



                                                <asp:Button ID="btnok0" runat="server" CssClass="buttonL"  Text="no" Width="60px" 
                                                    Height="24px" />

                                        </td>
                                        <td >
                                           </td>
                                    </tr>

                                </table>
                            </div>


                </td>
            </tr>
        </table>
</form>

используйте сеанс на своем экране и передайте его

на твоей странице

<script language="javascript" type="text/javascript">
function myFunction() {
    window.open("msgbx.aspx", "_blank", "toolbar=yes,scrollbars=no,resizable=yes,top=100,left=200,width=250,height=200");
}

на кнопке ссылки

        <var><button onclick="myFunction()" text="Delete"</button> </var>
person Community    schedule 03.04.2018