У меня в ASPX-WebForm в Classic ASP есть GridView с информацией о клиентах для CSV-Export.
В этом GridView у меня в TemplateField есть флажок для выбора пользователем.В CodeBehind на ClickEvent я иду с ForEach-Loop по строкам GridView и хочу установить флажок самогенерируемого (данные поступают не из базы данных), если установлен.С FindCOntrol я распаковываю флажок, и там все в порядке.Но каждый флажок НЕ отмечен, хотя он проверен в веб-форме.
Может кто-нибудь сказать мне, что я делаю неправильно?
ASPX:
<body>
<form id="form1" runat="server">
<div>
<asp:GridView ID="GridViewAdressen" runat="server" AutoGenerateColumns="false" DataKeyNames="order_id" EnablePersistedSelection="true" style="width:100%;" PagerSettings-Mode="Numeric">
<Columns>
<asp:TemplateField HeaderText="Auswahl">
<ItemTemplate>
<input type="checkbox" name="chkSelect" runat="server"/>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField HeaderText="ID" DataField="order_id"/>
<asp:BoundField HeaderText="Zeit" DataField="zeitpunkt"/>
<asp:BoundField HeaderText="Preis" DataField="preis"/>
<asp:BoundField HeaderText="Name" DataField="name"/>
<asp:BoundField HeaderText="Nick" DataField="username"/>
</Columns>
</asp:GridView>
<asp:Button Text="CSV erstellen" runat="server" OnClick="Unnamed_Click"/>
</div>
</form>
CodeBehind:
protected void Page_Load(object sender, EventArgs e)
{
if (Request.QueryString["security"] != null && Request.QueryString["security"] == token.seitenSicherheit)
{
// Anzahl Adressen
string menge = "10";
if (Request.QueryString["menge"] != null)
{
menge = Request.QueryString["menge"];
}
DataTable table = new DataTable();
using (OdbcConnection connection = new OdbcConnection(ConfigurationManager.ConnectionStrings["MySQLConnStr"].ConnectionString))
{
connection.Open();
using (OdbcCommand command = new OdbcCommand("SELECT * FROM bestellvorgang order by zeitpunkt desc limit " + menge, connection))
{
using (OdbcDataAdapter ad = new OdbcDataAdapter(command))
{
ad.Fill(table);
}
}
}
GridViewAdressen.DataSource = table;
GridViewAdressen.DataBind();
}
else
{
Response.Write("Keine Zugangsberechtigung");
}
}
protected void Unnamed_Click(object sender, EventArgs e)
{
// string für csv erstellen
// Grid View durchlaufen und checkBox prüfen
foreach (GridViewRow row in GridViewAdressen.Rows)
{
HtmlGenericControl chk = (HtmlGenericControl)row.FindControl("chkSelect");
if (chk.Checked)
{
// Abfrage für den order_id
Response.Write("Order-ID: " + GridViewAdressen.DataKeys[row.RowIndex].Value);
}
}
}
UNBOXING С FINDCONTROL НЕ НУЛЬ, но НИКОГДА НЕ ПРОВЕРЕНО !!!!!!!
В качестве альтернативы, я попытался использовать Html-флажок ввода, но этовсегда NULL при использовании FindControl и unbox как HtmlGenericControl ....