Как ограничить данные gridview и получить проверенное значение в строках gridview после обратной передачи - PullRequest
0 голосов
/ 26 октября 2018

У меня есть вид сетки, и данные будут добавлены в вид сетки после нажатия кнопки «Поиск», поэтому загрузка страницы моего просмотра пуста. Внутри gridview есть столбец с флажком, затем по нажатию кнопки «Download» я переберу проверенные строки и получу fileName перед загрузкой всех отмеченных. Проблема в том, что когда я нажимал на эту кнопку «Download», происходил постбэк, и я думаю, что из-за этого просмотр сетки становился пустым, и циклически проверенные строки не работали.

Тем не менее, это работало локально, но когда опубликовано как реальный веб-сайт с https, оно не работает.

Любая помощь очень ценится.

    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Portfolio.aspx.cs" 
    Inherits="Portfolio_CustomPage.Portfolio" %>
    <!DOCTYPE html>
     <html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
        <br />

    <div style="margin-left:auto; margin-right:auto; width:1000px;">

        <div style="text-align: left; height:200px; width:100%;">
           <asp:TextBox ID="TextBox1" runat="server" placeholder="SearchBox" Width="245px" Font-Size="12px">
                        </asp:TextBox>
            <br />
            <asp:Label ID="Label4" runat="server" Text="OR" Font-Names="Segoe UI" Font-Size="11px"></asp:Label>
            <br />
            <asp:Button ID="Button1" runat="server" Text="Search" Font-Size="12px" OnClick="searchBtn" 
                        style="background-color: #008CBA; padding: 5px 10px; cursor: pointer; " Width="112px" ForeColor="White" BorderStyle="None"/>
               </div>
        <br />
        <asp:Label ID="Label5" runat="server" Text="GrandParent" Font-Names="Segoe UI"></asp:Label>
            <asp:GridView ID="GridView1" runat="server" Width="1000px" AutoGenerateColumns="False" CellPadding="4" ForeColor="#333333" GridLines="None" AllowPaging="True" OnPageIndexChanging="GridView1_PageIndexChanging" PageSize="15" BackColor="#CCCCCC" Font-Size="12px" ShowHeaderWhenEmpty="True" OnRowDataBound="GridView_RowDataBound" DataKeyNames="FileID">
            <AlternatingRowStyle BackColor="White" ForeColor="#284775" />
            <Columns>
                    <asp:BoundField DataField="FileName" HeaderText="FileName" HeaderStyle-Width="200px"/>
                    <asp:BoundField DataField="FileID" HeaderText="FileID" Visible="False" />
                <asp:TemplateField>
                    <HeaderTemplate>
                        <asp:CheckBox ID="CheckboxSelectAll" onclick="HeaderCheckBoxClick(this);" runat="server" />
                    </HeaderTemplate>
                    <ItemTemplate>
                            <asp:CheckBox ID="CheckBox1" runat="server" onclick="ChildCheckBoxClick(this);" />
                        </ItemTemplate>
                </asp:TemplateField>
            </Columns>
        </asp:GridView>
       <br />
            <div style="text-align:right;">
                <asp:Button ID="Button4" runat="server" OnClick="Download_Button" style="background-color: #008CBA; padding: 5px 10px; cursor: pointer; " Text="DownloadSelected" Width="112px" ForeColor="White" BorderStyle="None" Font-Size="12px" />
            </div>
    </div>

Код позади

protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            loadData();

        }
    }

    void loadData()
    {
        string Search = TextBox1.Text;

        if (Search != "" )
        {
            LoadDataIntoGridView();
        }
        else
        {
            BindGridviewWithEmptyData();
        }

    }

protected void searchBtn(object sender, EventArgs e)
    {
        loadData();
    }

protected void Download_Button(object sender, EventArgs e)
    {

        var Filename = new List<string>();
        foreach (GridViewRow gr in GridView1.Rows)
        {
            CheckBox cb = (CheckBox)gr.FindControl("CheckBox1");
            if (cb.Checked)
            {
                string FileName = (string)GridView1.DataKeys[gr.RowIndex]["FileID"];
                if (FileName != "")
                {
                    //count++;
                    Filename.Add(FileName);
                }

            }
            //count++;
        }
        Download(Filename);
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...