【问题标题】:Selecting respective item in drop down list when edit button is clicked单击编辑按钮时在下拉列表中选择相应的项目
【发布时间】:2014-09-09 10:50:59
【问题描述】:

我正在开发 ASP.NET C# Web 应用程序。我有一个DropDownList 用于选择machines_names,即Databound。还有一个gridview,它显示存储的数据。 Gridview 还包含 templateField 用于编辑和删除按钮。单击编辑按钮时,必须将各个字段的存储值加载到 Web 表单中的各个字段上。问题是当我点击编辑按钮时,ddl中的项目(默认值“--select--”)被当前数据替换。

我希望在单击编辑按钮时在 ddl 中选择存储的 ddl 项目。 例如在 ddl 中有诸如

之类的项目
--select--
Roller
Heater
sensor

在网格视图中我有以下内容

Repair-id machine
  1       roller
  2       sensor

所以当我在网格视图中单击 ID 2 的编辑按钮时,ddl 必须选择第三项,即传感器,而不替换 ddl 中的顶部项。

这是我的代码

protected DataTable bindMachineName()
{
    DataTable dt = new DataTable();
        dc.Company_code = Convert.ToInt32(Session["Company_Code"].ToString());
        dt = dpbll.select_machine_name(dc);
        ddlMachine.DataSource = dt;
        ddlMachine.DataTextField = "machine_name";
        ddlMachine.DataValueField = "machine_id";
        ddlMachine.DataBind();
        ddlMachine.Items.Insert(0, new ListItem("----- Select -----", "-1"));           
    return dt;
}
protected void btnEdit_Click(object sender, EventArgs e)
{
    dc.Company_code = Convert.ToInt32(Session["company_code"].ToString());
    Button btn = (Button)sender;
    GridViewRow gv = (GridViewRow)btn.NamingContainer;
    string repair_id = gv.Cells[0].Text;
    ViewState["repair_id"] = repair_id;
    ddlMachine.SelectedItem.Text = gv.Cells[1].Text;
}

【问题讨论】:

    标签: c# asp.net gridview drop-down-menu


    【解决方案1】:

    没关系,我解决了这个问题。 ddlMachine.Items.FindByText(gv.Cells[1].Text 确实工作得很好。

    protected void btnEdit_Click(object sender, EventArgs e)
        {
            dc.Company_code = Convert.ToInt32(Session["company_code"].ToString());
            Button btn = (Button)sender;
            GridViewRow gv = (GridViewRow)btn.NamingContainer;
            string repair_id = gv.Cells[0].Text;
            ViewState["repair_id"] = repair_id;
            ddlMachine.SelectedIndex=ddlMachine.Items.IndexOf(ddlMachine.Items.FindByText(gv.Cells[1].Text));            
        }
    

    【讨论】:

      【解决方案2】:

      问题是当我单击编辑按钮时,ddl 中的项目(默认 value "--select--") 被当前数据替换。

      您可能希望将DropDownListAppendDataBoundItems 设置为true

      <asp:DropDownList runat="server" ID="ddlMachine" AppendDataBoundItems="true">
               <asp:ListItem Text="----- Select -----" Value="-1" />
      </asp:DropDownList>
      

      AppendDataBoundItems 属性允许您将项目添加到 数据绑定发生之前的 ListControl 对象。 数据绑定后, items 集合包含来自数据源的项目和 以前添加的项目

      【讨论】:

      • 我将 DropDownList 的 AppendDataBoundItems 设置为 true,但它不起作用。实际上我有一个数据库表,其中包含所有存储的机器信息。我只想在 DropDownList 中绑定机器名称。我希望 DropDownList 的选定项作为其原始索引中的默认项(不替换列表中的顶部项)。
      猜你喜欢
      • 2021-11-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-04
      • 1970-01-01
      • 2021-09-23
      • 2014-07-07
      • 1970-01-01
      相关资源
      最近更新 更多