У меня есть два столбца в моем GridView.Первый столбец содержит имена файлов, второй столбец содержит флажки.После того как пользователь выбрал произвольное количество флажков, нажмите кнопку, чтобы загрузить выбранные файлы.
Моя разметка выглядит следующим образом
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False">
<Columns>
<asp:BoundField HeaderText="Available Schemas"
DataField="SchemaFileName"
SortExpression="UserId">
</asp:BoundField>
<asp:TemplateField HeaderText="Select Schema">
<ItemTemplate>
<asp:CheckBox runat="server" ID="SelectedFiles" checked= '<%# Eval("checkValue") %>'/>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
Моя часть CodeBehind выглядит следующим образом
protected void Page_Load(object sender, EventArgs e)
{
GenerateDownloadLinks();
if (!IsPostBack)
{
GridView1.DataSource = listOfData;
GridView1.DataBind();
}
}
listOfData заполняется в GenerateDownloadLinks (), а затем связывается с GridView1.
После того, как пользователь выбрал файлы и нажал кнопку «Загрузить», мой код просматривает строки в GridView и когда CheckBoxпроверяется, обновляет изначально ложное значение записи данных, чтобы убедиться, какие файлы должны быть доступны для загрузки.
protected void GetFiles_Click(object sender, EventArgs e)
{
int i = 0;
foreach (GridViewRow row in GridView1.Rows)
{
CheckBox chkRow = (row.Cells[1].FindControl("SelectedFiles") as CheckBox);
if (chkRow.Checked)
{
listOfData[i].CheckValue = true;
}
i++;
}
}