你想自己写个继承自DataGrid的自定于控件?这是有一定难度的,为什么不用DataGrid ,轻型的你可以用DataList

解决方案 »

  1.   

    干吗不用vs.net里面的DataGrid,这个很方便的呀?
      

  2.   

    定义一下itemtemplate就可以实现很多功能啊
      

  3.   

    对 那儿有很多自绘制 DataGrid 的例子
      

  4.   

    如果用VS.NET的也行啊  不过我对它不是很熟  所以想自己写一个嘛   既然大家说可以用那个  那就用呗  不过  我真的不太会用啊   连它的有些属性都不清楚  给点这方面的介绍行不呀?  拜托了  大哥们~~最好是把它的各个方面都用到的例子做好拉~~
    -------------------------------------------------------                        寂寞无人两心知  一样花开为底迟?
      

  5.   

    其实你要是吃不透DataGrid 的用法,换一中思维进行想象,DataGrid 在客户端最纵是表格的形式显示出来,那你可以完全自己创建一个Table 来达到你想要的功能啊。
      

  6.   

    To:  Seeko0(阿 枫)  你说的正是我想要的啊  就是用Table搞一个类似的东东啊  你知道怎么整不???  给段代码参考参考  要C#的哦  谢谢----------------------------------------------------------------                                 寂寞无人两心知  一样花开为底迟?
      

  7.   

    精通DataGrid后在学好ASP就能写了,我以前看过ASP写的代码类似 DataGrid的功能
      

  8.   

    //注:无环境,记事本编辑,可能有笔误 :)
    //msn:[email protected]
    //手写的太累,分页还要复杂些,下次进行交流。
    //下面只是一个大致的过程
           string selectIndex="";
           DataTable dt=new DataTable();
    void Page_Load(object sender,System.EventArgs e)
    {
            dataSource();        if(!IsPostBack){
                 Button Add=new Button()
                 Add.Text="Add New"; 
                 Add.Click += new System.EventHundler(Add_Click);
                 Controls[1].Controls.Add(Add);
      
                 CreateTable();
            }
    }void dataSource()
    {
         dt= (DataTable)?;  
        // ...  get DataTable ,Code by youself 
    }void CreateTable()
    {
    //############ 在返回的DataTable 中,一定要有一个关键字段,值不能重复,否则不能进行删除操作
    //############ 这里设置为id
                   
    //     Table mainTable=new Table(); //可在IDE中创建一个table,并设置相关列信息,也可code中创建
           for(int i=0;i<dt.Rows.Count;i++)
           {
               TableRow row=new TableRow();//create Index Column
               TableCell cellIndex=new TableCell();
               cellIndex.Text=i.ToString();
               cellIndex.ID=dt.Rows[i]["id"].ToString();
               if (selectIndex == cellIndex.ID)  //表示选中
                   row.Attributes["backgrouncolor"]="red";           row.Cells.Add(cellIndex);
               
    //create data Column 
               for(int j=0;j<dt.Columns.Count;j++){ 
                   TableCell cell=new TableCell();
                   cell.Text=dt[i][j].ToString();           
                   row.Cells.Add(cell);
               }//create opreate Column
               TableCell cellOpr=new TableCell();
               Button select=new Button();
               select.Text="select";            
               select.ID="sel_"+dt.Rows[i]["id"].ToString();           
               //注册事件
               select.Click += new System.EventHundler(select_Click);  
               
               Button delete=new Button();
               delete.Text="delete";            
               delete.ID="del_"+dt.Rows[i]["id"].ToString();           
               //注册事件
               delete.Click += new System.EventHundler(delete_Click);  
               
               cellOpr.Controls.Add(select); 
               cellOpr.Controls.Add(delete);
               row.Cells.Add(cellOpr);
           }
    //       Controls[1].Controls.Add(mainTable);  //显示mainTable                           
    }//Add new 
    void Add_Click(object sender,System.EventArgs e)
    {
        CreateTable(); 
        AddNewRow();    
    }
    void AddNewRow()
    {
        //作用是产生新的一个数据录入行,最后一列还要包括保存按钮和取消按钮;
        //code 大致和CreateTable()一样,只是这里产生的TableCell 里的控件全部是TextBox,可以输入;
    }
    void select_Click(object sender ,System.EvenArgs e)
    {
         Button btn=(Button)sender;
         selectIndex=btn.ID.Replace("sel_","");  //获得哪行被选中 
         CreateTable();      
    }void delete_Click(object sneder,System.EventArgs e)
    {
         Button btn=(Button)sender;
         selectIndex=btn.ID.Replace("sel_","");  //获得哪行被选中 
         if(selectIndex !="")
             removeById(selectIndex);                  CreateTable();      
    }void removeById(string Id)
    {
         string sqlstr="delete from table where id ="+Id;
         // Execute Sql Code by youself;
    }
      

  9.   

    void delete_Click(object sneder,System.EventArgs e)
    {
         Button btn=(Button)sender;
    //##########     selectIndex=btn.ID.Replace("sel_","");  //获得哪行被选中 
         selectIndex=btn.ID.Replace("del_","");  //获得哪行被删除 
         if(selectIndex !="")
             removeById(selectIndex);                  CreateTable();      
    }
      

  10.   

    谢谢 Seeko0(阿 枫)   我试试