如何将值传递给asp.net中的下拉列表?

时间:2014-01-26 11:10:23

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

我在gridview中有一个下拉列表,我的gridview有一个数据表数据源,当我尝试将值传递给数据源时,它没有处理该值。

 SqlCommand com2 = new SqlCommand("select MRPFABRIC.GoodForHow, MRPFABRIC.MrpQty, allowance, ArticleFabricAssign.Consumption,(select SUBDETAILS.Description from SUBDETAILS where SubDetailsID = MRPFABRIC.ColorName) as Color,(select SUBDETAILS.Description from SUBDETAILS where SubDetailsID = MRPFABRIC.FabricName) as Fabric from MRPFABRIC join ARTICLE on ARTICLE.ControlNo = MRPFABRIC.ControlNo join ARTICLEFABRICASSIGN on ARTICLEFABRICASSIGN.ArtFabID = MRPFABRIC.ArtFabId join FABRIC on FABRIC.FabricID = ARTICLEFABRICASSIGN.FabricID join mrp on MRP.MRPNo = MRPFABRIC.MRPNo where MRP.MRPNo =  @fmno and ARTICLE.ArticleNo = @articleno", con);
        com2.Parameters.AddWithValue("@fmno", txtMRPNo.Text);
        com2.Parameters.AddWithValue("@articleno", ddlArtNo.SelectedItem.Text);
        DataTable dt2 = new DataTable();
        SqlDataAdapter adapt = new SqlDataAdapter(com2);
        adapt.Fill(dt2);
        GridView1.DataSource = dt2;
        GridView1.DataBind();

并且值的传递在这里

 DropDownList ddlfab = (DropDownList)GridView1.Rows[rowIndex].Cells[0].FindControl("ddlConst");
                        DropDownList ddlcol = (DropDownList)GridView1.Rows[rowIndex].Cells[1].FindControl("ddlColor");
                        TextBox txtgfhm = (TextBox)GridView1.Rows[rowIndex].Cells[2].FindControl("TextBox5");
                        TextBox txtconsump = (TextBox)GridView1.Rows[rowIndex].Cells[3].FindControl("TextBox6");
                        TextBox txtallow = (TextBox)GridView1.Rows[rowIndex].Cells[4].FindControl("TextBox7");
                        Label lblmrpq = (Label)GridView1.Rows[rowIndex].Cells[5].FindControl("Label1");

                        DataRow row2 = dt2.Rows[0];
                        ddlfab.SelectedItem.Text = dt2.Rows[i][5].ToString();
                        txtgfhm.Text = dt2.Rows[i][0].ToString();
                        txtconsump.Text = dt2.Rows[i][3].ToString();
                        txtallow.Text = dt2.Rows[i][2].ToString();
                        lblmrpq.Text = dt2.Rows[i][1].ToString();
                        ddlcol.Text = dt2.Rows[i][4].ToString();

ddlcol是不处理该值的人。 我尝试了ddlcol.SelectedItem.Text但它返回null引用异常,虽然我试图传递的行有一个值。 ddlCol.SelectedValue也不返回任何内容。

1 个答案:

答案 0 :(得分:1)

试试这个

        ddlcol.DataSource= dt2            
        ddlcol.DataTextField = "UserID";
        ddlcol.DataValueField = "UserID";
        ddlcol.DataBind();

你真的需要查看link