首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >网格视图databinder.eval问题

网格视图databinder.eval问题
EN

Stack Overflow用户
提问于 2009-07-08 16:45:34
回答 1查看 8.2K关注 0票数 1

我们有许多网格视图,我们通过一些中间件使用来自ADABAS数据源的数据进行填充,不幸的是,这些中间件返回了大量的stringBuilder数组,我们将这些数组转换为数据表,设置为网格视图的数据源,然后进行绑定。

这很复杂,但我所处的情况是,我需要能够更新网格视图(比方说,删除一行),而不需要返回到大型机、删除行并重新生成datatable,如果我们有Oracle数据源的话。

因此,我尝试在服务器端从网格视图中提取数据,构建datatable,删除给定行,然后将该datatable用作网格视图的数据源,然后重新绑定。

只要我知道网格视图的布局,我就可以逐个完成。但我们将在当前的项目中一遍又一遍地做这件事,我正在试图找出一种方法来抽象它,以便我可以将它用于任何我抛给它的网格视图。

我得到的问题是,网格视图中的大多数cols都是带有asp:labels的模板字段,其中的数据是用databinder.eval放入的:

代码语言:javascript
复制
<asp:TemplateField HeaderText="Code">
    <ItemTemplate>
        <asp:Label ID="lblCode" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "code")%>'></asp:Label></ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Title" ItemStyle-HorizontalAlign="Left" HeaderStyle-HorizontalAlign="Center">
    <ItemTemplate>
        <asp:Label ID="lblTitle" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "title")%>'></asp:Label></ItemTemplate>
</asp:TemplateField>

因此,在构建我的“伪”数据源时,我需要能够从网格视图中的某个位置提取这些列名。

该信息在网格视图中可用吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2009-07-08 23:25:57

啊呀。您将需要在GridView中存储假数据源列名称以及列值。一种建议是为每个伪数据源字段值添加一个HiddenField。在下面的示例中,显示标签中的代码(值)和HiddenField中代码映射的列(名称):

代码语言:javascript
复制
<asp:TemplateField HeaderText="Code"
    <ItemTemplate>
        <asp:Label ID="lblCode" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "code")%>'></asp:Label>
        <asp:HiddenField ID="hfCode" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "codefield")%>'></asp:HiddenField>
    </ItemTemplate>
</asp:TemplateField>

它很难看,但是列名总是可以使用的--不管它们是什么。祝你好运。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1099257

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档