当前位置:编程学习 > C#/ASP.NET >>

Girdview 的最精华问题(在线等)

小弟 最近碰到一个非常棘手的问题,先说明一下问题的情况!!
 我在gridview 中用了一个模版列,里面放了一个Dropdownlist,用来获取一张表的ID 字段.目的是当下拉控件选择一个值只后,就和选中的那个值的一条记录调换一下位置.
 但是现在,我在程序中Dropdownlist也无法调出,找不到有Dropdownlist这个控件.也不知道程序这么写.小弟刚接触.net ,请各位大虾多多关照!!!

--------------------编程问答-------------------- 救命呀!!! --------------------编程问答-------------------- 你是怎么放的?
--------------------编程问答-------------------- 这种问题一般是用FindControl找到控件,楼主最好贴贴你的页面代码,再描述清楚你的需求 --------------------编程问答-------------------- 找不到有Dropdownlist这个控件
---------------
你说的是在哪里找不到 --------------------编程问答-------------------- 点击编辑模版,然后就拖了个Dropdownlist控件 放在了ItemTemplate,就这样但是在程序中找不到这个控件 郁闷 --------------------编程问答-------------------- 程序代码?
--------------------编程问答-------------------- 定义DropDownList记得写 runat=server --------------------编程问答-------------------- 我直接想问你一下,怎样把一张表的ID 字段放在摸板列中的Dropdownlist控件中 --------------------编程问答-------------------- 是服务器控件,但是没用,我直接想问你一下,摸板列中的Dropdownlist控件中怎样获取一张表的ID字段 --------------------编程问答-------------------- 救命呀!!! --------------------编程问答-------------------- 可以使用FindControl来找到你选择模板列中的DropDownList控件。 --------------------编程问答-------------------- 我不是想获得DropDownlist的值 我是想将从数据库读到的值绑定到DropDownlist中!!! --------------------编程问答-------------------- 救命!! --------------------编程问答-------------------- 貼code --------------------编程问答-------------------- FindControl来找到你选择模板列中的DropDownList控件(ddl),然后数据库读到的值绑定到ddl.
--------------------编程问答-------------------- int id = Convert.ToInt32(((Label)lstData.Rows[e.RowIndex].Cells[0].FindControl("lblID")).Text.Trim()); --------------------编程问答-------------------- 在RowCommand事件里写 
 GridViewRow GVR = (GridViewRow)((Control)e.CommandSource).Parent.Parent;
 Dropdownlist dl= GVR.FindControl("控件的ID") as Dropdownlist;
这样就能找到你所点击的Dropdownlist 了
然后就可以操作了 --------------------编程问答-------------------- 我的代码是这样的 但是不行!!
 protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        DataSet dstal = new DataSet();
        dstal = MySqlOperate.FunViewCourse();//获得DATASET    

     if (((DropDownList)e.Row.FindControl("ddl1")) == null) 
     {       
         DropDownList ddl1= (DropDownList)e.Row.FindControl("ddl1");
         ddl1.DataSource = dstal.Tables[0];
         ddl1.DataTextField = "C_id";
         ddl1.DataValueField = "C_id";
         ddl1.DataBind();
       } 
    } --------------------编程问答-------------------- 救命呀!!到底怎么帮定 ,我放了代码相信大家都知道我的意思!!! --------------------编程问答-------------------- 精华贴,UP~~ --------------------编程问答-------------------- 建议楼主在RowCreated事件里动态添加DropDownList --------------------编程问答-------------------- 设置DropDownList autopostback属性为true

GridView ItemCommand 事件
--------------------编程问答-------------------- 楼主,N人 --------------------编程问答-------------------- if (((DropDownList)e.Row.FindControl("ddl1")) == null) //如果为空,
{
DropDownList ddl1= (DropDownList)e.Row.FindControl("ddl1");//找不到了就要。找到了不要。
.....
--------------------编程问答-------------------- protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        DataSet dstal = new DataSet();
        dstal = MySqlOperate.FunViewCourse();//获得DATASET    

     if (((DropDownList)e.Row.FindControl("ddl1")) == null) 
// if (((DropDownList)e.Row.FindControl("ddl1")) != null) 不等于空的话 下面就不执行了,数据都没帮定,当然是空的,下面的就不执行了,所以用了==null 其实我觉的不用也没什么关系的! 

     {       
         DropDownList ddl1= (DropDownList)e.Row.FindControl("ddl1");
         ddl1.DataSource = dstal.Tables[0];
         ddl1.DataTextField = "C_id";
         ddl1.DataValueField = "C_id";
         ddl1.DataBind();
       } 
    }
--------------------编程问答-------------------- 救命呀!!有人有这方面的原代码吗??????????/ --------------------编程问答-------------------- 难道非得高分才有人回 --------------------编程问答-------------------- 你跟踪断点吧,我这么写是好的 --------------------编程问答-------------------- 我想问下,为什么给别人看代码这么郁闷啊 --------------------编程问答-------------------- 如果Dropdownlist的改变了 怎么去获取 改变的值 和 改变前的值!! --------------------编程问答-------------------- protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
DataSet dstal = new DataSet();
dstal = MySqlOperate.FunViewCourse();
//加下面这句  
if (e.Row.RowType == DataControlRowType.DataRow)
{
//下面这个判断应该是不等于才对
      if (((DropDownList)e.Row.FindControl("ddl1")) !=null) 
{       
          DropDownList ddl1= (DropDownList)e.Row.FindControl("ddl1");
          ddl1.DataSource = dstal.Tables[0];
          ddl1.DataTextField = "C_id";
          ddl1.DataValueField = "C_id";
         ddl1.DataBind();
        } 
}
}
--------------------编程问答-------------------- 楼上的是正确的
if (e.Row.RowType == DataControlRowType.DataRow)//这句话的意思是判断行是为数据行的时候才执行下面的代码,因为有标题行和尾行
if (((DropDownList)e.Row.FindControl("ddl1")) !=null) 
//要求不等于的,等于的话dropdownlist是空的就根本没有找到dropdownlist这个对象,它怎么可能绑定到值??
PS:楼主的名字取得太吓人了~~~ --------------------编程问答-------------------- amandag(高歌) ( ) 信誉:98  2007-7-20 15:59:52  得分: 0  
 
 
   
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
DataSet dstal = new DataSet();
dstal = MySqlOperate.FunViewCourse();
//加下面这句  
if (e.Row.RowType == DataControlRowType.DataRow)
{
//下面这个判断应该是不等于才对
     if (((DropDownList)e.Row.FindControl("ddl1")) !=null) 
{       
         DropDownList ddl1= (DropDownList)e.Row.FindControl("ddl1");
         ddl1.DataSource = dstal.Tables[0];
         ddl1.DataTextField = "C_id";
         ddl1.DataValueField = "C_id";
        ddl1.DataBind();
       } 
}
}


  
 
----------
同意! --------------------编程问答-------------------- mark --------------------编程问答-------------------- 同意 --------------------编程问答-------------------- Girdview 的最精华问题 !!! 

LZ 你的人品有问题! --------------------编程问答-------------------- 我考这个也叫精华问题啊,稍微用过的都知道用findcontrol查找,lz人品不得。 --------------------编程问答-------------------- 学习! --------------------编程问答-------------------- if (((DropDownList)e.Row.FindControl("ddl1")) == null)

》》》

都是空引用了,还执行下面的代码有虾米意思?

if (((DropDownList)e.Row.FindControl("ddl1")) != null) --------------------编程问答-------------------- 这种问题似乎很多啊.容易弄的,自己学习下吧 --------------------编程问答-------------------- 学习dd --------------------编程问答-------------------- http://hi.baidu.com/sure_huang/blog/item/a32983c810164c127e3e6f1d.html --------------------编程问答-------------------- 点模版中的DropDownList1控件,右边出来智能菜单,选配制数据源,将数据库里的数据绑定到DropDownList1上。就可以了。但运行中,选中一项后更新事件的代码需要重写。 --------------------编程问答-------------------- 在模板列里直接用DataSource控件不就好了吗?
每次都去数据库取再重新绑定不觉得繁琐吗 --------------------编程问答-------------------- //DropDownList 绑定 
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs  e) 
 { 
  DataSet   dstal   =   new   DataSet(); 
  dstal   =   MySqlOperate.FunViewCourse();     
  if   (e.Row.RowType   ==   DataControlRowType.DataRow) 
  {             
    DropDownList   ddl1=   (DropDownList)e.Row.FindControl( "ddl1 "); 
    ddl1.DataSource   =   dstal.Tables[0]; 
    ddl1.DataTextField   =   "C_id "; 
    ddl1.DataValueField   =   "C_id "; 
    ddl1.DataBind();            
  } 



//触发你的DropDownList空间事件 

 <asp:TemplateField>
        <ItemTemplate>
         <asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="True" 
            onselectedindexchanged="DropDownList1_SelectedIndexChanged">
        </asp:DropDownList>

  protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
  {
         GridViewRow gv = (GridViewRow)(((DropDownList)sender).NamingContainer);
            string key = GridView1.DataKeys[gv.RowIndex].Value.ToString();
       ...........//执行相应操作
   } --------------------编程问答-------------------- 唉。。。。来晚了。。。。
补充:.NET技术 ,  ASP.NET
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,