如何使用 VB 将数据库表中的下拉列表数据绑定到 gridview 中?

2024-03-31

因此,在这个网格视图中,有一个状态列,我希望在单击编辑按钮时出现一个包含“通过”、“待处理”、“失败”的下拉列表。这些值已经在表中,因此我需要以某种方式从该表绑定到每一行的每个 ddl。

这是网格视图中的列。正如你所看到的,我只想在不处于编辑模式时显示一个标签,并在按下编辑按钮时显示一个 ddl

    <asp:TemplateField HeaderText="During Production Status" SortExpression="DuringProductionStatus">
        <EditItemTemplate>
             <asp:DropDownList ID="ddlStatus" runat="server" datavaluefield="Name" 
                 datatextfield="Name" DataSource="*What goes here?*"> />
        </EditItemTemplate>
        <ItemTemplate>
            <asp:Label ID="lblStatus" runat="server"
                Text='I don't understand how to get this from the ddl' />
        </ItemTemplate>
    </asp:TemplateField>

为了清楚起见,我的表名为 Status,数据库名为 DirectImport


这里需要执行几个步骤 - 这些步骤都不是特别困难,但可能有点困难fiddly(恕我直言)。好消息是,一旦您成功完成一次,再做一次就会变得更容易!

我假设你有一个<asp:*DataSource>页面上的控件 - 我更喜欢 ObjectDataSource,但我认为这并不重要,我认为 SqlDataSource 效果同样好。我从来没有尝试过这样做GridView.DataSource = MyDataSet在代码隐藏中,所以我不知道这是否有效,但我的假设是它不会,因为你不会得到你想要的正确的双向绑定。该数据源为您的网格提供主要数据。这里的关键点是您的数据库查询必须返回状态文本字段和状态 ID。

所以你的网格视图现在看起来像这样:

<asp:objectdatasource runat="server" id="MainDataSource" ... />  
<asp:gridview runat="server" id="MyGridView" DataSourceID="MainDataSource">  
    <Columns>  
        <asp:TemplateField HeaderText="During Production Status" SortExpression="DuringProductionStatus">  
            <ItemTemplate>  
                <asp:Label ID="lblStatus" runat="server"  
                   Text="<%# Bind('Status') %>" />  
           </ItemTemplate>  
        </asp:TemplateField>  
     </Columns>  
</asp:gridview>  

The Text="<%# Bind('Status') %>"是将状态文本放入网格时缺少的部分。

现在,将第二个数据源添加到标记中,该数据源从状态表中读取一组值。

<asp:objectdatasource runat="server" id="StatusObjectDataSource" ... />

并将 EditItemTemplate 添加到绑定到 Status DataSource 的 GridView 中。

<EditItemTemplate>
    <asp:DropDownList ID="ddlStatus" runat="server" datavaluefield="StatusID" 
        datatextfield="Status" DataSourceID="StatusObjectDataSource"  
        SelectedValue="<%# Bind('StatusId') %>" />
</EditItemTemplate>

The SelectedValue="<%# Bind('StatusId') %>"是连接两个数据集的东西,这样当您将一行翻转到编辑模式时,下拉列表就已经选择了正确的项目,然后当您保存它时,您就可以将状态 ID 放入数据库中。
你就完成了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 VB 将数据库表中的下拉列表数据绑定到 gridview 中? 的相关文章

  • 将 MVC 站点部署到 IIS 会导致找不到默认共享部分视图

    我有一个可以在本地 IIS 上完美运行的网站 我的所有页面都使用默认的共享部分视图 这称为预期 Layout cshtml 该视图放置在我的共享文件夹中 这可以在这里看到 正如我所期望的那样 这非常有效 不过 我现在发布了我的网站 然后 我
  • 从客户端访问 DomainService 中的自定义对象

    我正在使用域服务从 Silverlight 客户端的数据库中获取数据 在DomainService1 cs中 我添加了以下内容 EnableClientAccess public class Product public int produ
  • ListItem 附加自定义值

    我在asp net中使用dropdownlist 它有代表下拉列表项目的ListItem集合 每个ListItem只有两个字段来保存数据 Value和Text字段 但这些还不够 我想保存更多数据对于每个项目 假设附加字段中有 Text1 和
  • 输入类型=图像 - onclick(),将触发其事件,但在 jquery 中的函数上表现不佳

    我认为这可能是两篇文章 2个问题 所以如果你对此发表评论 我会将它们分开 主要问题实际上是 我怎样才能为按钮设置图像背景 简单且正确 我想现在我可以确定这些事实了 因为我在将图像设置为按钮背景时遇到了 小 问题 我想 好吧 如果很难设置的话
  • 如何禁用“您是否只想查看安全传送的网页内容”警告?

    我的网站有完整的 https 及其使用外部 jquery 资源 即 http 在 IE 8 中 当我重定向网站时 它给了我 您只想查看安全传送的网页内容 警告 如何避免这种情况 有没有可用的脚本可以解决这个问题 提前致谢 似乎有两个可能的问
  • RegisterForEventValidation 只能在 Render 期间调用

    我有一个将从 jquery ajax 调用的 webmethod WebMethod public string TestMethod string param1 string param2 StringBuilder b new Stri
  • VB.NET 中的 TextChanged 事件

    我有两个基本文本框 比方说 A 和 B 我希望在一个文本框中输入内容以清除另一个文本框中的任何输入 例如 在 A 中键入 123 现在在 B 中键入 456 B 应包含 456 A 应为空 但是 我在 B 中收到 56 而 A 为空 似乎
  • ASP.NET DropDownList SelectedValue 属性未立即设置

    我有一个 ASP NET Web 表单 在其中使用 DropDownList 控件来允许用户选择一个项目并查看相关结果 由于某种原因 当我设置 DropDownList 的 SelectedValue 属性时 它设置的值不会立即可用 这是我
  • 从应用程序内部监视 ASP.NET 应用程序内存

    我正在寻找一种方法让应用程序本身监视它正在使用的内存量 这样我就可以每小时左右将其记录在日志文件中 并密切关注应用程序的使用情况 它全部托管 因此我们可以对系统进行更改以查看发生了什么 因此解决方案必须来自应用程序代码内 我们将来可能会使用
  • Html Helper“操作”未定义,Asp.NET Core 2.2

    我是 ASP NET Core MVC 的新手 我会在这个问题前说我已经阅读了其他类似的问题 但它们与我遇到的问题并不完全相同 我正在尝试实现动态左侧导航 其中每个按钮都是从我的数据库加载的 当我打电话时 Html Action NavMe
  • TransactionScope 是否需要开启 DTC 服务?

    根据我的阅读 为了在 NET 中使用 TransactionScope 您需要运行 Windows 中的分布式事务协调器服务 我有那个服务关掉 并且我的应用程序似乎运行相同并且回滚事务没有问题 我错过了什么吗 它如何能够发挥作用呢 我正在运
  • 对齐 GridView 中的行值

    我需要在 asp net 3 5 中右对齐 gridview 列中的值 我怎样才能做到这一点
  • ASP.NET C# 中的自定义控件

    我创建了一个简单的自定义控件 它仅继承自Literal控件 并且还没有任何扩展 代码为空 命名空间 CustomControls 类名 文字 System Web UI WebControls Literal 接下来我要做的就是在aspx页
  • 如何在VB函数中添加可选参数/默认值参数?

    如何在 Visual Basic 中创建一个包含可选参数的方法 Use the Optional关键字并提供默认值 可选参数必须是最后定义的参数 以避免创建不明确的函数签名 Sub MyMethod ByVal Param1 As Stri
  • 会话过期时将部分视图重定向到登录页面

    是否有一种简单的方法可以在会话过期后将整个页面 而不仅仅是部分视图 重定向到登录页面 我已尝试以下解决方案 但无法使其工作 Net MVC Partial View 会话过期时加载登录页面 https stackoverflow com q
  • .NET Core 中 appsettings.json 设置的继承

    我正在努力实现这样的目标 BaseSettings 具有所有其他部分通用的设置 Child1Settings 拥有所有 BaseSettings Child1Settings Child2Settings 拥有所有 BaseSettings
  • 如果我拒绝确认,如何防止更改选择框值

    我正在使用国家 地区选择框 当用户选择一个国家 地区时 会出现添加分支链接 并且用户在该国家 地区下添加分支 但是当用户想要更改国家 地区时 则应销毁有关该国家 地区的所有分支 在更改国家 地区之前 会出现一个确认框并显示警告 一切正常 但
  • Response.Write - Internet Explorer 中的文件名编码错误

    我使用以下代码将文件从服务器发送到客户端 Response AppendHeader content disposition attachment filename FileName Response ContentType MimeTyp
  • 如何检查主音量是否静音

    如何在 Windows 7 操作系统中检查主音量是否静音我有静音或取消静音的代码 IE Public Const APPCOMMAND VOLUME MUTE As Integer H80000 Public Const APPCOMMAN
  • window.showModalDialog 的等效跨浏览器解决方案是什么?

    window showModalDialog 的等效跨浏览器解决方案有哪些 showModalDialog 在 IE 和 FF 3 中引入 我个人认为没有 但是有很多 UI 工具包提供了这样的功能 例如jQuery UI http jque

随机推荐