【问题标题】:Asp.Net: Change value of Column in gridviewAsp.Net:更改网格视图中列的值
【发布时间】:2012-06-19 06:15:45
【问题描述】:

我在 asp.net 中有一个从表填充的网格(实际上是一个连接),

有一个名为EMPLOYEENAMEcolumn(显示员工姓名)和另一列名为EMPLOYEEID(显示员工ID),

这两列是相关的,即员工“汤姆”总是有员工 ID 说“21”

目前我正在使用下拉列表编辑员工姓名列

我需要一个代码来自动更改适合编辑的员工姓名的员工 ID

即如果我将员工姓名选择为“TOM”,则相应的员工会自动更改为“21”

【问题讨论】:

  • ID列呢?它也是 DropDownList 吗?分享一些代码,让我们了解场景。
  • 没有ID列是只读类型元素
  • 因此,您可以处理下拉列表中选择的索引更改事件并相应地填充只读元素。
  • 目前我还没有附加ID列,这是我打算做的事情,所以显示代码可能会混淆观众
  • 在 asp 下拉菜单“OnSelectedIndexChanged”中有一个属性。你可以在里面写下你的选择逻辑

标签: c# asp.net sql


【解决方案1】:

当您使用下拉列表更改员工姓名时。因此,您可以通过为该下拉列表设置 autopostback=true 并设置事件 onSelectedIndexChanged 来做到这一点。

在代码页上编写代码以获取所选下拉列表索引的员工 ID 并在您的网格中更新它

在 aspx 页面上:

    AutoPastBack="true" OnSelectedIndexChanged="grid_selectedIndexchanged"

在页面后面的代码上:

protected void grid_selectedIndexchanged(object sender, EventArgs e)

{ /*从数据库中为选定的员工获取数据的代码 */

}

【讨论】:

  • 我这样做了,但我似乎没有得到下拉列表的 id,因为它在网格视图内,所以我怎样才能获得下拉列表中选择的值变了吗?
  • 在下拉选择索引更改事件中,该部分使用以下代码:[ DropDownList ddl = (DropDownList)sender; GridViewRow gvr = (GridViewRow)ddl.NamingContainer; int rowIndex = gvr.RowIndex; ] 并且您将获得要更改employeeid的gridviewrow的索引
【解决方案2】:

在 MSDN @Gridview sample code 上查看此链接。

回顾/研究 C# 中的 Gridview SelectedIndexChanged 事件,以及 XML/html 文件中的 GridView 属性。

【讨论】:

    【解决方案3】:

    您可以将 EMPLOYEEID 设置为 ListItem 的值。这样,当您选择一个项目时,您就会拥有所选项目的员工姓名和员工 ID。

    可以通过这样的数据绑定来实现:

    ddlEmpNames.DataSource = employees;
    ddlEmpNames.DataTextField = "EMPLOYEENAME";
    ddlEmpNames.DataValueField = "EMPLOYEEID";
    ddlEmpNames.DataBind();
    

    这可能会为您节省另一个数据库调用,只是为了从名称中查找员工 ID。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-27
      • 2015-04-10
      • 2013-07-14
      相关资源
      最近更新 更多