Telerik RadGrid行数据填充GridEditableItem列

时间:2014-08-22 18:22:25

标签: c# asp.net telerik-grid

我有一个telerik radgrid,在编辑模式下的一列中有一个超链接。我希望将超链接的文本设置为它链接到的页面的页面标题,而不为此创建隐藏字段。我从数据库调用中获取此标题,我将传递正在编辑的网格中当前行的ID。由于ItemDataBound方法始终在实际行本身之前绑定GridEditableItem ,因此MasterTableView在下一次迭代之前不包含我需要的ID。

我提出的丑陋的解决方案是保留对超链接的引用,并在下一次迭代时填充它,此时ID现在可以在网格上使用。

我似乎认为有更好的解决方案!

protected void grid_ItemDataBound(object sender, GridItemEventArgs e)
{
    if (e.Item is GridEditableItem && e.Item.IsInEditMode)
    {
        link = ((e.Item as GridEditableItem)["myHyperlink"].Controls[1] as HyperLink);
        go1 = true;
    }

    if(go2)
    {

        string myID = grid.MasterTableView.Items[grid.Items.Count - 1].GetDataKeyValue("myID").ToString();
        string pageId= PoolAgent.getPageId(Int32.Parse(myID));
        link.Text = pageId;
        go2 = false;
        go1 = false;
    }

    if (go1)
        go2 = true;

ASPX:

            <telerik:GridBoundColumn DataField="myID" UniqueName="myID" HeaderText="ID" ReadOnly="true">
               </telerik:GridBoundColumn>

            <telerik:GridTemplateColumn EditFormColumnIndex="2" UniqueName="myHyperlink" HeaderText="Link:" ItemStyle-HorizontalAlign="Center" Display="False" >
                <ItemTemplate>
                </ItemTemplate>
                <EditItemTemplate>
                    <asp:Hyperlink ID="KeyManagerLink" Runat="server" NavigateUrl='' onclick="popupwindow(this.href, 'popupwindow', 1150, 500); return false;"></asp:Hyperlink>
                </EditItemTemplate>
            </telerik:GridTemplateColumn>

0 个答案:

没有答案