Я получил часть ответа от another question, но не могу найти более конкретный бит информации, который мне нужно закончить.Сочетание колонны гипертекста Telerik и столбца сетки в 1 поле
Я пытаюсь объединить 2 поля в 1, как и выше, но один из них - GridHyperLinkColumn. Я использую событие GridItemDataBound в код, чтобы положить 2 поля вместе, как это:
protected void GridItemDataBound(object sender, GridItemEventArgs e) {
if (e.Item is GridDataItem) {
GridDataItem item = (GridDataItem)e.Item;
item["A"].Text = item["A"].Text + " /<br/>" + item["B"].Text;
item["C"].Text = item["C"].Text + " /<br/>" + item["D"].Text;
}
}
Мой UI сократить вниз для простоты выглядит следующим образом:
<Columns>
<telerik:GridBoundColumn UniqueName="A" DataField="A" />
<telerik:GridBoundColumn UniqueName="B" DataField="B" Visible="false" />
<telerik:GridHyperLinkColumn DataNavigateUrlFields="ID" DataNavigateUrlFormatString="~.aspx?ID={0}" DataTextField="C" Text="{0}" UniqueName="C" />
<telerik:GridBoundColumn UniqueName="D" DataField="D" Visible="false" />
</Columns>
Это хорошо работает в течение первых 2-х колонок что я объединяюсь в 1 (A & B).
Однако предположим, что элемент ["C"] является GridHyperLinkColumn. Когда я пытаюсь использовать тот же код, он показывает только / <D value>
. Ничего не появляется перед косой чертой, где должно отображаться «C».
Есть ли другое свойство (вместо .Text) Я должен использовать или мне нужно сделать это по-другому?
Я попробовал метод GridTemplateColumn и это не сработало - я получаю «Eval может быть использован только в контексте DataBound колонке» ошибки. Я даже попытался поместить его в теги GridBoundColumn, и он пожаловался, что ItemTemplate недействителен. Тем не менее, я смог успешно его использовать, используя литераловую технику (это было довольно неплотно). Спасибо за вашу помощь. –
@ShortyLong Интересно, что вы не могли получить первый пример для работы. Он работал правильно для меня, когда я вручную привязывал DataTable к сетке. Любая ставка, рад, что вы могли бы получить второй способ работы. Пожалуйста, отметьте мой ответ как принятый ответ. – csm8118