单击编辑按钮时,在下拉列表中选择相应的项目

时间:2014-09-09 10:51:00

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

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

我希望在单击编辑按钮时在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;
}

2 个答案:

答案 0 :(得分: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));            
    }

答案 1 :(得分:0)

  

问题是当我点击ddl中的编辑按钮项目时(默认值)   值" - 选择 - ")被当前数据替换。

您可能希望将DropDownList' AppendDataBoundItems设置为true

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

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