如何在绑定后更改Radgrid列值?

时间:2015-03-23 16:17:54

标签: sql data-binding telerik radgrid

我有一个Radgrid,我用SqlAdapter绑定它。我的问题是我想改变一个列的值。那可能吗?

我的列名是IsShadow,它绑定true或false。我无法改变它。如果value为false或true,则更改列文本外观,而不是数据库更新。

我试过的代码

foreach (Telerik.Web.UI.GridDataItem dataItem in gridShadow.MasterTableView.Items)
            {
                bool flag = Convert.ToBoolean(dataItem.GetDataKeyValue("IsShadow"));
                GridEditableItem editedItem = dataItem as GridEditableItem;
if (!flag)
                {
                    TableCell tableCell = editedItem["IsShadow"] = ???
                }
}

谢谢。

2 个答案:

答案 0 :(得分:1)

请尝试使用以下代码段,如有任何疑问,请与我们联系。

// Normal Mode
if (e.Item is GridDataItem)
{
    GridDataItem item = (GridDataItem)e.Item;
    item["IsShadow"].Text = "Your new text";
}

// Edit Mode
if ((e.Item is GridEditableItem) && (e.Item.IsInEditMode))
{
    GridEditableItem editItem = (GridEditableItem)e.Item;
    (editItem["IsShadow"].Controls[0] as TextBox).Text = "Your new text";
}

答案 1 :(得分:1)

您可能需要GridTemplateColumn

ItemTemplate 中,您将检查IsShadow的值并显示一些文本,但在 EditItemTemplate 中,您可能只需要一个true / false的复选框。 / p>

<telerik:GridTemplateColumn HeaderText="Is Shadow" UniqueName="TemplateColumn">
  <EditItemTemplate>    
    <asp:CheckBox id="editChkBox" runat="server"      
  Checked='<%# Bind("IsShadow") %>'>     
    </asp:CheckBox>
  </EditItemTemplate>
  <ItemTemplate>      
    <asp:Lable id="lblIsShadow" runat="server"      
  Text='<%# Convert.ToBoolean(Eval("IsShadow")) == true ? "it is shadow" : "Not shadow" %>'>    
    </asp:CheckBox>   
  </ItemTemplate>
</telerik:GridTemplateColumn>