如何将复杂的字典绑定到asp.net中的Gridview?

发布于 2024-09-04 16:05:13 字数 393 浏览 7 评论 0原文

我使用了 dictionary到 gridview 的早期绑定来将 URL 文本及其 HRef 显示为键值,它的工作方式就像一个魅力。 但因为我想用这个替换字典:

dictionary<string, LinkInfo>

绑定出错了!我应该处理一些事件,例如 onItemDataBound 或其他事件吗? LinkInfo 结构为:

public struct LinkInfo{
    public string href;
    public bool Enabled;
}

I've used an early binding of a dictionary<string, string> to a gridview to show Urls Text and its HRef as key-value and it works like a charm.
But since I want to replace the dictionary with this one :

dictionary<string, LinkInfo>

the binding goes wrong! Should I handle some events like as onItemDataBound or something?
and the LinkInfo structure is:

public struct LinkInfo{
    public string href;
    public bool Enabled;
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

沙沙粒小 2024-09-11 16:05:13

是的,您需要订阅 OnItemDataBound 事件。使用模板字段,插入带有“href”等 ID 的文字

在 OnItemDataBound 事件中使用

Literal _href = e.Row.FindControl("href") as Literal;  
if(_href != null)
{
  _href = ((LinkInfo)e.Row.DataItem).href;
}

编辑:我写了一篇文章,进一步阐述了此主题:http://www .tomot.de/en-us/article/7/asp.net/gridview-overview-of- different-ways-to-bind-data-to-columns

Yes, you need to subsribe to the OnItemDataBound event. Use a template field, insert a literal with an ID like "href"

In the OnItemDataBound event use

Literal _href = e.Row.FindControl("href") as Literal;  
if(_href != null)
{
  _href = ((LinkInfo)e.Row.DataItem).href;
}

Edit: I've written an article that elaborates this topic further: http://www.tomot.de/en-us/article/7/asp.net/gridview-overview-of-different-ways-to-bind-data-to-columns

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文