Как заполнить метку внутри TemplateColumn Telerik RadGrid в коде позади - PullRequest
0 голосов
/ 09 ноября 2019

Вот мой RadGrid aspx:

   <telerik:RadGrid ID="grd_transactions" runat="server" GroupPanelPosition="Top" AutoGenerateColumns="False">
        <GroupingSettings CollapseAllTooltip="Collapse all groups"></GroupingSettings>
        <MasterTableView>
            <Columns>
                <telerik:GridTemplateColumn FilterControlAltText="Filter TemplateColumn_Type column" HeaderText="Type" UniqueName="TemplateColumn_Type">
                    <HeaderStyle Font-Bold="True" Font-Size="Medium" Width="100px" HorizontalAlign="Center" VerticalAlign="Middle" />
                    <ItemTemplate>
                        <asp:Label ID="lbl_Type" runat="server" Text="lbl_Type"></asp:Label>
                    </ItemTemplate>
                </telerik:GridTemplateColumn>
                <telerik:GridTemplateColumn FilterControlAltText="Filter TemplateColumn_Date_Time_UTC_GMT column" HeaderText="Date &amp; Time (UTC/GMT)" UniqueName="TemplateColumn_Date_Time_UTC_GMT">
                    <HeaderStyle Font-Bold="True" Font-Size="Medium" Width="200px" HorizontalAlign="Center" VerticalAlign="Middle" />
                    <ItemTemplate>
                        <asp:Label ID="lbl_Date_Time_UTC_GMT" runat="server" Text="lbl_Date_Time_UTC_GMT"></asp:Label>
                    </ItemTemplate>
                </telerik:GridTemplateColumn>
                <telerik:GridTemplateColumn FilterControlAltText="Filter TemplateColumn_BTC_Investment_Address column" HeaderText="BTC Investment Address" UniqueName="TemplateColumn_BTC_Investment_Address">
                    <HeaderStyle Font-Bold="True" Font-Size="Medium" Width="600px" HorizontalAlign="Center" VerticalAlign="Middle" />
                    <ItemTemplate>
                        <asp:Label ID="lbl_BTC_Investment_Address" runat="server" Text="lbl_BTC_Investment_Address"></asp:Label>
                    </ItemTemplate>
                </telerik:GridTemplateColumn>
                <telerik:GridTemplateColumn FilterControlAltText="Filter TemplateColumn_Deposit_Amount column" HeaderText="Deposit Amount" UniqueName="TemplateColumn_Deposit_Amount">
                    <HeaderStyle Font-Bold="True" Font-Size="Medium" Width="150px" HorizontalAlign="Center" VerticalAlign="Middle" />
                    <ItemTemplate>
                        <asp:Label ID="lbl_Deposit_Amount" runat="server" Text="lbl_Deposit_Amount"></asp:Label>
                    </ItemTemplate>
                </telerik:GridTemplateColumn>
                <telerik:GridTemplateColumn FilterControlAltText="Filter TemplateColumn_Payout_Amount column" HeaderText="Payout Amount" UniqueName="TemplateColumn_Payout_Amount">
                    <HeaderStyle Font-Bold="True" Font-Size="Medium" Width="150px" HorizontalAlign="Center" VerticalAlign="Middle" />
                    <ItemTemplate>
                        <asp:Label ID="lbl_Payout_Amount" runat="server" Text="lbl_Payout_Amount"></asp:Label>
                    </ItemTemplate>
                </telerik:GridTemplateColumn>
                <telerik:GridTemplateColumn FilterControlAltText="Filter TemplateColumn_Status column" HeaderText="Status" UniqueName="TemplateColumn_Status">
                    <HeaderStyle Font-Bold="True" Font-Size="Medium" Width="150px" HorizontalAlign="Center" VerticalAlign="Middle" />
                    <ItemTemplate>
                        <asp:Label ID="lbl_Status" runat="server" Text="lbl_Status"></asp:Label>
                    </ItemTemplate>
                </telerik:GridTemplateColumn>
            </Columns>
        </MasterTableView>
    </telerik:RadGrid>

Теперь в коде позади я хочу заполнить эти метки внутри TemplateColumns следующим образом:

    DataTable table = new DataTable();
    table.Columns.Add("Type", typeof(string));
    table.Columns.Add("Date &amp; Time (UTC/GMT)", typeof(string));
    table.Columns.Add("BTC Investment Address", typeof(string));
    table.Columns.Add("Deposit Amount", typeof(string));
    table.Columns.Add("Payout Amount", typeof(string));
    table.Columns.Add("Status", typeof(string));
    table.Rows.Add("1", "2", "3", "4" ,"5", "6");
    table.Rows.Add("1", "2", "3", "4", "5", "6");
    table.Rows.Add("1", "2", "3", "4", "5", "6");
    table.Rows.Add("1", "2", "3", "4", "5", "6");
    table.Rows.Add("1", "2", "3", "4", "5", "6");
    grd_transactions.DataSource = table;
    grd_transactions.DataBind();

Вот неправильный вывод:

output

Как я могу получить доступ к этим ярлыкам и заполнить их?

1 Ответ

0 голосов
/ 14 ноября 2019

Если вам не нужны пользовательские метки, вы можете изменить GridTemplateColumn на GridBoundColumn. Первый столбец как для примера:

  <telerik:GridBoundColumn DataField="Type" HeaderText="Type" UniqueName="TemplateColumn_Type"  ItemStyle-Width="100px" >
    <HeaderStyle Font-Bold="True" Font-Size="Medium" Width="100px" HorizontalAlign="Center" VerticalAlign="Middle" />
    </telerik:GridBoundColumn>

Вам просто нужно иметь одинаковое значение в DataField столбца radgrid и имя столбца в Datatable. «Тип» В этом случае.

Если вы хотите использовать GridTemplateColumn, измените текстовое значение и используйте DataBinder следующим образом:

<telerik:GridTemplateColumn FilterControlAltText="Filter TemplateColumn_Type column" HeaderText="Type" UniqueName="TemplateColumn_Type">
                    <HeaderStyle Font-Bold="True" Font-Size="Medium" Width="100px" HorizontalAlign="Center" VerticalAlign="Middle" />
                    <ItemTemplate>
                        <asp:Label ID="lbl_Type" runat="server" Text='<%#DataBinder.Eval(Container.DataItem, "Type")%>' ></asp:Label>
                    </ItemTemplate>
                </telerik:GridTemplateColumn>

Применить к остальным столбцам.

...