0

1 つはタイトル、もう 1 つは 2 つのハイパー リンク (リンクごとに 1 つずつ、2 つの異なる列を作成できます) の 2 つの列を持つグリッドが必要です。

タイトルの配列と ID の配列があります。リンクが「edit.aspx?id=INSERT_ID_FROM_DATA_HERE」のようなものになることを望みます。

私がこれまでに持っているもの:

<telerik:RadGrid ID="RadGrid1" runat="server" Skin="Telerik" AutoGenerateColumns="True">
                                            <MasterTableView>
                                                <Columns>
                                                    <telerik:GridBoundColumn HeaderText="Title" UniqueName="Title" DataFormatString="'{0}'">
                                                    </telerik:GridBoundColumn>
                                                    <telerik:GridHyperLinkColumn HeaderText="Actions" UniqueName="Actions" 
                                                        DataNavigateUrlFormatString="default.aspx?id='{0}" DataTextField="Edit">
                                                    </telerik:GridHyperLinkColumn>
                                                </Columns>
                                            </MasterTableView>
                                        </telerik:RadGrid>

と:

DataTable dt = new DataTable();
            DataColumn dcTitle = new DataColumn("Title");
            DataColumn dcId = new DataColumn("Actions");
            dt.Columns.Add(dcTitle);
            dt.Columns.Add(dcId);

            String[] widgetNames = new String[list.Count];
            String[] widgetIds = new String[list.Count];

            for (int i = 0; i < list.Count; i++)
            {
                widgetNames[i] = list[i].SelectSingleNode("title").InnerText;
                widgetIds[i] = list[i].SelectSingleNode("instanceid").InnerText;

                String[] row = new String[2];
                row[0] = widgetNames[i];
                row[1] = widgetIds[i];

                dt.LoadDataRow(row, true);
            }

            RadGrid1.DataSource = dt;

2 つの新しい列を作成し、そこにタイトルと ID をリンクなしで出力するだけです。

4

1 に答える 1

1

列を指定しているため、必ず AutoGenerateColumns="False" を設定してください。DataField および DataNavigateUrlFields 属性をデータ ソースの列名に設定します。

データ形式文字列のプレースホルダー値は、グリッド列に指定されたデータ フィールドを参照します。GridBoundColumn は DataField を 1 つしか持つことができませんが、GridHyperLinkColumn はカンマで区切られた複数のデータ フィールドを持つことができます。{0} は最初のフィールド、{1} は 2 番目のフィールドなどを指します...

複数のハイパーリンクに関する質問に答えるには、それぞれに個別の GridHyperLinkColumn を使用する方が簡単です。それ以外の場合は、TemplateColumn を使用して独自の完全なカスタム レンダリングを作成する必要があります。

<telerik:RadGrid ID="RadGrid1" runat="server" Skin="Telerik" AutoGenerateColumns="False">
    <MasterTableView>
        <Columns>
            <telerik:GridBoundColumn HeaderText="Title" DataField="Title" DataFormatString="'{0}'" />
            <telerik:GridHyperLinkColumn HeaderText="Actions" UniqueName="Actions" DataNavigateUrlFields="Actions" DataNavigateUrlFormatString="default.aspx?id='{0}'" DataTextField="Edit" />
        </Columns>
    </MasterTableView>
</telerik:RadGrid>
于 2012-04-23T22:18:35.623 に答える