问题
我是基础设施的新手,我在我的页面中使用 webdatagrid。我的网格有一个复选框作为字段之一。标题字段也是一个复选框。
在标头复选框的服务器端事件中(我需要在服务器事件中没有客户端事件:))。我需要绑定网格。
如果选中标题复选框,我只需要显示活动记录,如果未选中,我需要显示所有记录。
我正在标题复选框的服务器功能中实现此逻辑,并且在此事件中网格未绑定(即值未更改)。
我正在为这个修复工作一个多星期。请帮忙
请看下面的代码............
ASPX
<ig:WebDataGrid ID="WebDataGrid1" runat="server" EnableDataViewState="true" ViewStateMode="Enabled" Height="100%" Width="100%" AutoGenerateColumns="False" OnColumnSorted="WebDataGrid1_ColumnSorted" DataKeyFields="Id">
<Columns>
<ig:BoundDataField DataFieldName="Id" Hidden="True" Key="Id">
<Header Text="BoundColumn_0" />
</ig:BoundDataField>
<ig:BoundDataField DataFieldName="Name" Key="Name">
<Header Text="Name"></Header>
</ig:BoundDataField>
<ig:BoundDataField DataFieldName="ShortName" Key="ShortName">
<Header Text="ShortName"></Header>
</ig:BoundDataField>
<ig:BoundDataField DataFieldName="IsoCode" Key="IsoCode">
<Header Text="IsoCode"></Header>
</ig:BoundDataField>
<ig:TemplateDataField Key="IsActive" Header-Text="IsActive">
<HeaderTemplate>
<asp:CheckBox ID="chkChildIsActive" runat="server" Checked="true"
Text="IsActive" AutoPostBack="True"
oncheckedchanged="chkChildIsActive_CheckedChanged">
</asp:CheckBox>
</HeaderTemplate>
<ItemTemplate>
<asp:CheckBox ID="chkHIsActive" runat="server" Checked='<%# DataBinder.Eval(((Infragistics.Web.UI.TemplateContainer)Container).DataItem, "IsActive") %>'>
</asp:CheckBox>
</ItemTemplate>
<Header Text="IsActive" />
</ig:TemplateDataField>
</Columns>
<ClientEvents Click="WebDataGrid1_SingleClick" DoubleClick="WebDataGrid1_DoubleClick" />
<Behaviors>
<ig:Paging PageSize="15" QuickPages="9">
<PagerTemplate>
<uc1:CustomerPagerControl ID="CustomerPager" runat="server" />
</PagerTemplate>
</ig:Paging>
<ig:Sorting>
</ig:Sorting>
<ig:RowSelectors>
</ig:RowSelectors>
<ig:Selection RowSelectType="Single" CellClickAction="Row" CellSelectType="None">
</ig:Selection>
</Behaviors>
</ig:WebDataGrid>
ASPX.cs
// 页面加载绑定数据到网格
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
List<Port> port = PortManager.PortListTestPaging(true);
WebDataGrid1.DataSource = port;
WebDataGrid1.DataBind();
}
}
//Checkbox Event
protected void chkChildIsActive_CheckedChanged(object sender, EventArgs e)
{
CheckBox chkChildIsActive = (CheckBox)sender;
List<Port> port = PortManager.PortListTestPaging(chkChildIsActive.Checked);
WebDataGrid1.DataSource = port;
WebDataGrid1.DataBind();
}
我从 Infragistics 论坛尝试的修复:
EnableDataViewState = false :如果我们将此属性赋予网格,那么在复选框事件中,网格的所有数据都会被清除(并且不会触发复选框事件)。
EnableDataViewState = true 和 WebDataGrid1.ClearDataSource(): 然后我在复选框事件“找到具有相同 ID 'xyz0_4' 的多个控件”时出现以下错误我已经通过以下链接进行修复但失败。http://www.infragistics.com/community/forums/p/65065/329361.aspx
WebDataGrid1.Rows.Clear() & //WebDataGrid1.Columns.Clear() :两者都不起作用。
我想知道问题出在哪里,所以对带有按钮的按钮事件尝试了相同的代码,并且它起作用了。所以我认为我可能错误地给出了 webdatagrid 中的一些属性的一些问题。我已经完成了所有可能的工作。
谢谢,桑卡迪普五世