【问题标题】:How to get value of column in OnItemCreated event in telerik C#如何在 Telerik C# 的 OnItemCreated 事件中获取列的值
【发布时间】:2014-04-10 09:03:39
【问题描述】:

我有 Telerik 网格,我想在 OnItemCreated 事件中获取 GridBoundColumn 的值

这是我的代码

<telerik:RadGrid OnNeedDataSource="RGrid_NeedDataSource"  AutoGenerateColumns="false" OnItemCommand="RadGrid1_ItemCommand" OnItemDataBound="rad_RowDataBound" OnItemCreated="RadGrid1_ItemCreated" ID="radgrid" runat="server" AllowPaging="true" PagerStyle-AlwaysVisible="true" >
    <MasterTableView SkinID="SunSet">
     <Columns>
....
 <telerik:GridBoundColumn  FilterControlWidth="60" DataField="Status" HeaderText="Status" UniqueName="Status" HeaderStyle-Width="250px"></telerik:GridBoundColumn>
...
</AllColisgTags>

在我的 C# 代码中

 protected void RadGrid1_ItemCreated(object sender, Telerik.Web.UI.GridItemEventArgs e)
    {
        if (e.Item is GridDataItem)
        {

//Here I want to get the value of Status in string I have trid find controls 
e.Item.FindControl("Status");//Did not work
}
}

【问题讨论】:

  • 我也尝试过使用 string status = ((System.Data.DataRowView)(e.Item.DataItem)).Row.ItemArray[15].ToString();它也不适合我

标签: c# asp.net telerik telerik-grid radgrid


【解决方案1】:

请尝试以下代码 sn-p。

ASPX

<telerik:GridBoundColumn  FilterControlWidth="60" DataField="Status" HeaderText="Status" UniqueName="Status" HeaderStyle-Width="250px"></telerik:GridBoundColumn>

ASPX.CS

protected void RadGrid1_ItemDataBound(object sender, Telerik.Web.UI.GridItemEventArgs e)
{
 if (e.Item is GridDataItem)
        {
            GridDataItem item = (GridDataItem)e.Item;
            string iss = item["Status"].Text; // Status is column Uniquename
        }
}

注意:我们无法在 ItemCreated 事件中获取/访问任何列/行的值。您必须使用 ItemDataBound 或 prerender 事件。

请查看以下链接了解更多信息。

【讨论】:

    【解决方案2】:

    试试这个

    <telerik:GridTemplateColumn  FilterControlWidth="60" DataField="Status" HeaderText="Status" UniqueName="Status" HeaderStyle-Width="250px">
     <asp:Label ID="Status" Text='<%# Bind("Status") %>' runat="server"></asp:Label>
    </telerik:GridTemplateColumn>
    

    C#

    protected void RadGrid1_ItemDataBound(object sender, Telerik.Web.UI.GridItemEventArgs e)
    {
     if (e.Item is GridDataItem)
            {
                GridDataItem item = (GridDataItem)e.Item;
                Label lbl = (Label)item["TemplateColumn"].FindControl("Status");
                string iss = lbl.Text;
    
            }
    }
    

    【讨论】:

    • 不工作它给我这个错误类型'Telerik.Web.UI.GridTemplateColumn'没有名为'Label'的公共属性。
    • @Jahangeer - 如果它不起作用,它是如何被接受的答案?看来 Jayesh 的解决方案是正确的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-18
    • 2021-10-06
    • 1970-01-01
    相关资源
    最近更新 更多