在gridview的模板列中有个dropdownlist ,它是通过datasource1来绑定。
 <asp:TemplateField  HeaderText="本地网">
                                      <EditItemTemplate>
                                          <asp:DropDownList ID="ddshudi" runat="server" 
                                              DataValueField='<%# bind("rb_pz_bendiwang") %>' 
                                              DataSourceID="SqlDataSource1"  DataTextField="rb_pz_bendiwang">
                                          </asp:DropDownList>
                                          <asp:SqlDataSource ID="SqlDataSource1"  runat="server"  
                                              ConnectionString="<%$ ConnectionStrings:strConnection %>" 
                                              SelectCommand="SELECT [rb_pz_num], [rb_pz_bendiwang] FROM [c_pz_daily] WHERE ([rb_pz_num] = @rb_pz_num)">
                                              <SelectParameters>
                                                  <asp:QueryStringParameter Name="rb_pz_num" Type="String" />
                                              </SelectParameters>
                                   </asp:SqlDataSource>
                                      </EditItemTemplate>在后台:
public string rb_pz_num;
protected void Page_Load(object sender, EventArgs e)
    {
               rb_pz_num= "xj2010716";
        //SqlDataSource1.SelectParameters["rb_pz_num"].DefaultValue = rb_pz_num;
        //((SqlDataSource)GridView2.Rows.FindControl("SqlDataSource1")).SelectParameter.["rb_pz_num"].DefaultValue = rb_pz_num;
        ((SqlDataSource)GridView2.FindControl("SqlDataSource1")).SelectParameters["rb_pz_num"].DefaultValue = rb_pz_num;总是出现错误:未将对象引用设置到对象的实例
可能是没有获取到sqldatasource1,但是不知道模板当中的sqldatasource1如何才能被获取。

解决方案 »

  1.   

    楼主的意思是将rb_pz_num的默认值改为xj2010716?
      

  2.   

    上述问题我已解决,问题出在我把SQLDATASOURCE放在模板里,所以属性没能获得,放到页面上就OK了。
    我想另外在提个问题:DropDownList的问题!!!
    用代码绑定到DropDownList上
      if (((DropDownList)e.Row.FindControl("ddshudi")) != null)
            {            DropDownList ddshudi = (DropDownList)e.Row.FindControl("ddshudi");
                //ddshudi.Items.Clear();
                //ddshudi.Items.Add(new ListItem("请选择...", "0"));
                //ddshudi.Items.Add(new ListItem("xxx", "1"));
                //ddshudi.Items.Add(new ListItem("yyy", "2"));
                //ddshudi.Items.Add(new ListItem("zzz", "3"));
    有在编辑模板里,在进行编辑时通过SQLDATASOURCE 提取ddshudi的数据库中的值,这样一来DropDownList上显示,我手动绑定的值和从数据库提取的值,DropDownList里始终是有两个相同的(重复)项,我怎样可以删除其中一个?