net_lover(孟子E章)都来了。我只有看得分了

解决方案 »

  1.   

    你可以试着用用EditCommandColumn,避免在同一个模板列中发生许多事件,反而使自己不清楚了~~~
      

  2.   

    public class DataGridTemplate : System.Web.UI.ITemplate
    {
    ListItemType templateType;
       
    public DataGridTemplate(ListItemType type)
    {
    templateType = type;
    } public void InstantiateIn(System.Web.UI.Control container)
    {

    switch(templateType)
    {
    case ListItemType.Header:
    break;
    case ListItemType.Item:
    Panel myPanel = new Panel();
    myPanel.ID ="GridPanel";
    container.Controls.Add(myPanel);
    break;
    case ListItemType.EditItem:
    break;
    case ListItemType.Footer:
    break;
    }
    }
    }
    这个是实现动态模板的
    TemplateColumn Column = new TemplateColumn();
    Column.HeaderText = "header";
    Column.ItemTemplate = new Callray.Develop.GridItem.DataGridTemplate(ListItemType.Item);
    this.D_I_Grid.Columns.AddAt(1,Column);
    这个是动态加入模板列的代码
    string sql = "select PERSON from D_functionary where taskid =" + e.Item.Cells[0].Text;
    this.myDataObject.Open();
    SqlDataReader reader = this.myDataObject.rdExecute(sql);
    if(reader != null)
    {
      int i = 0;
      while(reader.Read())
      {
       System.Web.UI.WebControls.LinkButton bt = new LinkButton();
       bt.ID = "bt"+ i.ToString();
       bt.Text = reader["person"].ToString();
       bt.Attributes.Add("id",e.Item.Cells[0].Text);
       bt.Click += new System.EventHandler(this.bt_Click);
       ((Panel)e.Item.FindControl("GridPanel")).Controls.Add(bt);
       i++;
    }
    reader.Close();
    }
    this.myDataObject.Close();
    这个是在ItemDataBound中写的代码
      

  3.   

    另外的还有一个模板列是静态加的,其item为一个imagebutton ,设commandname="view"
    ItemCommand中
    if(e.commandname == "view")
    {
      //代码
    }
    动态假如的LinkButton的点击事件
    private void bt_Click(object sender, System.EventArgs e)
    {
    this.Response.Redirect("url",true);
    }现在我把静态的模板列换成按钮列
    <asp:ButtonColumn Text="查看" CommandName="view"></asp:ButtonColumn>
    可以运行!
      

  4.   

    imageButton好象是有毛病,以前帖子太多了