У меня есть вид сетки, и данные будут добавлены в вид сетки после нажатия кнопки «Поиск», поэтому загрузка страницы моего просмотра пуста. Внутри 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);
}