通过GridView中的DropDownList来控制某列的内容输出,请问如何实现!编辑状态的时候,我想通过配件ID的droplistdown来控制配件名称的自动输出!<asp:BoundField DataField="委托保养单号" HeaderText="委托保养单号" ReadOnly="True"  />
            <asp:TemplateField HeaderText="配件ID">
                <EditItemTemplate>
                    <asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="True" AppendDataBoundItems="True" 
                        DataSourceID="SqlDataSource1" DataTextField="配件ID" DataValueField="配件ID" 
                        onselectedindexchanged="DropDownList1_SelectedIndexChanged">
                        <asp:ListItem Text="请选择" Value="-1"></asp:ListItem>
                    </asp:DropDownList>
                    <asp:SqlDataSource ID="SqlDataSource1" runat="server" 
                        ConnectionString="<%$ ConnectionStrings:4s_serviceConnectionString %>" 
                        SelectCommand="SELECT * FROM [配件信息]"></asp:SqlDataSource>
                </EditItemTemplate>
               <ItemTemplate>
                                        <%# Eval("配件ID")%>
                                    </ItemTemplate>
            
            
            </asp:TemplateField>
                <asp:TemplateField HeaderText="配件名称">
                    <EditItemTemplate>
                        <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
                    </EditItemTemplate>
                    <ItemTemplate>
                                        <%# Eval("配件ID")%>
                                    </ItemTemplate>
                </asp:TemplateField>

解决方案 »

  1.   

    在DropDownList的SelectedIndexChanged 事件使用如下代码,但是出错            string PartsID = ((DropDownList)GridView1.Rows[1].FindControl("DropDownList1")).SelectedValue;
                string sqlall = "select * from 配件信息 where 配件ID='" + PartsID + "'";
                SqlDataReader dread = sqlHelp.ExcuteReader(sqlHelp.ConnectionStringLocalTransaction, CommandType.Text, sqlall);
                if (dread.Read())
                {
                    string PartsName = dread["配件名称"].ToString();
                    ((TextBox)GridView1.FindControl("TextBox1")).Text = PartsName;
                }未将对象引用设置到对象的实例。
    说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。  怎么整!!!
      

  2.   

    参考:
    http://www.cnblogs.com/insus/articles/1411016.html