我想在我的Codebehind中设置一个Checkbox(位于我的Gridview的Header中)。在这里你可以看到我的Templatefield
<asp:GridView ID="MyGridView" runat="server" AutoGenerateColumns="false" DataSourceID="DataSource1" AllowSorting="True"
AllowPaging="true" CellPadding="4" ForeColor="#333333" GridLines="None" UseAccessibleHeader="True" ViewStateMode="Enabled"
OnSorting="onSort" EmptyDataText="Keine Daten gefunden! Setzen Sie die Filter zurück und versuchen Sie es erneut.">
<AlternatingRowStyle BackColor="White" ForeColor="#284775" />
...
<asp:TemplateField>
<ItemTemplate>
<asp:CheckBox runat="server" Checked='<%# Eval("SomeData")%>' Enabled="false" />
</ItemTemplate>
<HeaderTemplate>
<asp:LinkButton runat="server" Text="NÜ" CommandName="Sort" CommandArgument="SomeData" ForeColor="White" ToolTip="SomeData"></asp:LinkButton>
<br />
<asp:CheckBox ID="checkSearchSomeData" runat="server" AutoPostBack="true" OnCheckedChanged="onFilter"/>
</HeaderTemplate>
</asp:TemplateField>
我按照这里显示的方式尝试了它:
Dim tc As TableCell = MyGridView.HeaderRow.Cells(2)
For Each c As Control In tc.Controls
If c.GetType.Equals((New CheckBox).GetType) Then
Dim cb2 As CheckBox = c
cb2.Checked = True
cb2.DataBind()
tc.DataBind()
MyGridView.DataBind()
End If
Next
我也尝试过这种方式:
Dim cb As CheckBox = MyGridView.HeaderRow.FindControl("checkSearchSomeData")
cb.Checked = True
cb.DataBind()
但在我的Gridview中没有选中Checkbox。我认为它与渲染有关。
有人可以帮忙吗?谢谢!当然,我也很高兴看到改变其他东西的例子,然后是一个Checkbox!
答案 0 :(得分:0)
好的,我找到了一些解决方案。它使用会话变量为已检查的信号工作,请参见此处:
<asp:TextBox ID="txtSearchVorname" runat="server" Text='<%# Session("Test") %>' AutoPostBack="true" OnTextChanged="onFilter" CssClass="grid_tb"></asp:TextBox>
当然你也可以使用复选框和签到的符号!