Sil*_*ght 1 c# asp.net null telerik radgrid
我在我的telerik RadGrid中有一个BooundColumn,如下所示:
<telerik:GridBoundColumn DataField="Status" FilterControlAltText="Filter Status column"
HeaderText="Status" SortExpression="Status" UniqueName="Status"
FilterImageToolTip="Filter">
<HeaderStyle HorizontalAlign="Center" VerticalAlign="Middle" />
<ItemStyle HorizontalAlign="Center" VerticalAlign="Middle" />
</telerik:GridBoundColumn>
Run Code Online (Sandbox Code Playgroud)
我的sql server 2008数据库中的状态列可以接受空值,RadGrid用空字符串显示它们.
我怎么能用Empty Strings一个替换这些Colorable Strings?
意味着用这样的东西替换 - > <span style='color: red;'>Empty</span>
我知道我可以将BoundColumn转换为TemplateColumn,如下所示:
<telerik:GridTemplateColumn FilterControlAltText="Filter TemplateColumn_Status column"
HeaderText="Status" UniqueName="TemplateColumn_Status" FilterImageToolTip="Filter"
ReadOnly="False" Visible="False">
<ItemTemplate>
<asp:Label ID="lblStatusInsideGrd" runat="server" Font-Size="11px" Text='<%# (bool)Convert.IsDBNull(Eval("Status")) ? "<span class=\"lblInsideGrd\">Empty</span>" : Eval("Status") %>'></asp:Label>
</ItemTemplate>
<HeaderStyle HorizontalAlign="Center" VerticalAlign="Middle" />
<ItemStyle HorizontalAlign="Center" VerticalAlign="Middle" />
</telerik:GridTemplateColumn>
Run Code Online (Sandbox Code Playgroud)
这个替代品是一个好主意,效果很好.但通过这样做,我Filering在这个专栏上失去了RadGrid .
请你告诉我另一种保持RadGrid Friltering的方法吗?
提前致谢
您可以在ItemDataBound事件上执行此操作,当网格绑定到SqlDataSource时,您可以获取当前DataRow:
更新:我留下了与DataRow一起使用的代码,并修复了列背景设置
public void TestGrid_ItemDataBound(Object sender, Telerik.Web.UI.GridItemEventArgs e)
{
if (e.Item is GridDataItem)
{
if (e.Item.DataItem is DataRowView)
{
GridDataItem gdItem = (GridDataItem)e.Item;
DataRow rw = ((DataRowView)e.Item.DataItem).Row;
if (rw.IsNull("Status"))
{
GridColumn urlColumn = TestGrid.MasterTableView.Columns.FindByUniqueName("Status");
gdItem.Cells[urlColumn.OrderIndex].BackColor = Color.Red;
gdItem["Status"].Text = "Empty";
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
由问题编辑
真的感谢这些代码.
以下代码对我来说没问题:
protected void grdSMS_ItemDataBound(object sender, GridItemEventArgs e)
{
if (e.Item is GridDataItem)
{
GridDataItem item = (GridDataItem)e.Item;
if (item["Status"].Text == " ")
{
item["Status"].ForeColor = Color.Red;
item["Status"].Text = "Empty";
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11781 次 |
| 最近记录: |