Table tableDirInfo = new Table();  在线等高手!

时间:2022-02-18 17:32:26
   Table tableDirInfo = new Table();

第一:

我这样在CS中生成一个Table, 那么Table的样式怎么写,,我不会,希望大家提供, 高度,宽度,等等!!感谢!!

第二:
我给link一个单击事件

       /**////取得目录名
             FileName = dir.Name;

  likbutton.Click += new EventHandler(DisPlay);//同时在这里想传给DisPlay方法一个filename,不知道这怎么传!


  public void DisPlay(object sender, EventArgs e)
        {
            string delFile = Server.MapPath("~/databack/") + "\\FileName";
            File.Delete(delFile); 
        }




在线等....

22 个解决方案

#1


Table tableDirInfo = new Table();  在线等高手! 接分!

#2


谁帮帮我! UP

#3


table.attribute["class"]="" 呗

#4


高度宽度等样式可以设置css,是.attribute("属性")添加

#5


filename可用session传递

#6


      
        Table tableDirInfo = new Table();
        tableDirInfo.Style.Add(HtmlTextWriterStyle.Width, "60px");
        tableDirInfo.Style.Add(HtmlTextWriterStyle.Height, "60px");

#7


引用 6 楼 sage425 的回复:
  Table tableDirInfo = new Table();
  tableDirInfo.Style.Add(HtmlTextWriterStyle.Width, "60px");
  tableDirInfo.Style.Add(HtmlTextWriterStyle.Height, "60px");




好像设置了没反应啊, 如果我想要这个Table 加上竖滚动条,怎么弄,是不是把高度定小就自动会有?

#8


问题二还没想到处理方法  你上google搜索下吧

#9


滚动条的话 就要使用其他控件  不是Table.你自己搜下吧 。我也好久没这样用过了。挺麻烦的

#10


引用 8 楼 sage425 的回复:
问题二还没想到处理方法 你上google搜索下吧


找不到,谢谢你了,我在看看吧,我用一个隐藏域可以删除但是,它传的值是循环的,所以不是当前自己想删除的那行,唉,,,!

#11


参数可以试试属性传递。
 protected void Page_Load(object sender, EventArgs e)
    {
         likbutton.Attributes["parm1"] = "Hello World";
    }

    public void DisPlay(object sender, EventArgs e)
    {
        Button lb = (Button)sender;
        Response.Write(lb.Attributes["parm1"]);
    }

#12


你的 Table tableDirInfo = new Table(); 要放在页面的<div> 或是其它标签里面,才可以在页面显示出来的

#13


cs 里面 做 stringbuilder 的拼接啊

css只要写在 table 的 class=‘’里面 

css样式表在 aspx 页面 导入 

就行了

#14


可以用Command和CommandArgument传递,不要用Click

#15


问题一:

/// 设置表样式
        /// </summary>
        /// <param name="table"></param>
        private void SetTableStyle(Table table)
        {
            table.Width = Unit.Percentage(100);
            table.CellPadding = 5;
            table.CellSpacing = 0;
            table.Style.Add("border-collapse", "collapse");
            table.BorderWidth = Unit.Pixel(1);
            table.BorderColor = Color.DarkGray;
        }
        /// <summary>
        /// 设置行样式
        /// </summary>
        /// <param name="row"></param>
        private void SetTableRowStyle(TableRow row)
        {
            row.BackColor = Color.Gainsboro;

            row.Height = Unit.Pixel(23);
            //row.Width = Unit.Percentage(100);

            row.Font.Size = FontUnit.Point(10);
            row.Font.Bold = true;
            
        }
        /// <summary>
        /// 设置单元格样式
        /// </summary>
        /// <param name="cell"></param>
        private void SetTableCellStyle(TableCell cell)
        {
            //cell.Width = Unit.Percentage(98);
            cell.BorderWidth = Unit.Pixel(1);
        }

以上只是一个简单的样式设置,只供参考,楼主根据需要自己改。

问题二、可参考11楼的方法用Attributes来实现。

#16


引用 15 楼 laolaolai 的回复:
问题一:

C# code

/// 设置表样式
        /// </summary>
        /// <param name="table"></param>
        private void SetTableStyle(Table table)
        {
            table.Width = Unit.Percentage(10……





还是不行,现在我需要解决两个问题,第一Table有竖向滚动条,第二委托是怎样传值的? --、

#17


第一,Table要加竖滚动条,可以用div将table包起来,给div加竖滚动条。
      用如下属性overflow-y:scroll
第二,likbutton.Click += new EventHandler(DisPlay);
     你已经限定用EventHandler即包括(object 和 eventargs)两个参数的委托了,
      请问,你的filename存放到哪里?只能让object和eventargs两个参数对象携带你想传入的参数来考虑。所以你可以用attributes来存放参数比较方便,否则你要自定义委托。

#18


引用 17 楼 laolaolai 的回复:
第一,Table要加竖滚动条,可以用div将table包起来,给div加竖滚动条。
  用如下属性overflow-y:scroll
第二,likbutton.Click += new EventHandler(DisPlay);
  你已经限定用EventHandler即包括(object 和 eventargs)两个参数的委托了,
  请问,你的filename存放到哪里?只能让obj……


你好laolaolai ! 请看我这个方法的代码,目的是要循环出项目文件夹里的数据库文件,从而获取它们的大小,修改时间等一系列信息, 我添加了一行删除的功能,如果我点击删除那么一行及文件夹里所对应的文件将删掉,那么我触发了linkbutton点击事件,通过传入唯一的Filename来进行删除, 可我现在只能用隐藏域获取Filename再删除时取到Filename, 因为是循环文件夹里的文件,所以我每次删除的都是最后一个文件,我不知道怎么才能弄了?望你帮我看看。



/// 获取文件列表
 /// </summary>
 private void GetFileList()
 {
     string strCurDir,FileName,FileExt;
     
     /**////文件大小
     long FileSize;
     
     /**////最后修改时间;
     DateTime FileModify;
 
     /**////初始化
     if(!IsPostBack)
     {
         /**////初始化时,默认为当前页面所在的目录
         strCurDir = Server.MapPath("~/databack/");
         lblCurDir.Text = strCurDir;
         txtCurDir.Text = strCurDir;
     }
     else
     {
         strCurDir = txtCurDir.Text;
         txtCurDir.Text = strCurDir;
         lblCurDir.Text = strCurDir;
     }
     FileInfo fi;
     DirectoryInfo dir;
     TableCell td;
     TableRow tr;
     Table tableDirInfo = new Table();
     tableDirInfo.BorderColor = Color.DarkGray;
     tableDirInfo.Height = 50;

     tr = new TableRow();
     tableDirInfo.BorderStyle = System.Web.UI.WebControls.BorderStyle.Solid;
     tableDirInfo.Width = 500;
     tr.BorderStyle = System.Web.UI.WebControls.BorderStyle.Solid;

     td = new TableCell();
     td.Controls.Add(new LiteralControl("文件名"));
     tr.Cells.Add(td);
     td = new TableCell();
     td.Controls.Add(new LiteralControl("文件类型"));
     tr.Cells.Add(td);
     td = new TableCell();
     td.Controls.Add(new LiteralControl("文件大小"));
     tr.Cells.Add(td);
     td = new TableCell();
     td.Controls.Add(new LiteralControl("最后修改时间"));
     tr.Cells.Add(td);
     td = new TableCell();
     td.Controls.Add(new LiteralControl("操作"));
     tr.Cells.Add(td);

     tableDirInfo.Rows.Add(tr);
     this.form1.Controls.Add(tableDirInfo);

     
     /**////针对当前目录建立目录引用对象
     DirectoryInfo dirInfo = new DirectoryInfo(txtCurDir.Text);
     
     /**////循环判断当前目录下的文件和目录
     foreach(FileSystemInfo fsi in dirInfo.GetFileSystemInfos())
     {
         FileName = "";
         FileExt = "";
         FileSize = 0;
         
         /**////如果是文件
         if(fsi is FileInfo)
         {
             fi = (FileInfo)fsi;
             
             /**////取得文件名
             FileName = fi.Name;
             this.txtend.Text = fi.Name;
             /**////取得文件的扩展名
             FileExt = fi.Extension;
             
             /**////取得文件的大小
             FileSize =fi.Length/1024;
             
             
             /**////取得文件的最后修改时间
             FileModify = fi.LastWriteTime;
         }
 
         /**////否则是目录
         else
         {
             dir = (DirectoryInfo)fsi;
             
             /**////取得目录名
             FileName = dir.Name;
             
             
             /**////取得目录的最后修改时间
             FileModify = dir.LastWriteTime;
             
             /**////设置文件的扩展名为"文件夹"
             FileExt = "文件夹";
         }
         
         /**////动态添加表格内容
         tr = new TableRow();
         td = new TableCell();
         td.Controls.Add(new LiteralControl(FileName));
         tr.Cells.Add(td);
         td = new TableCell();
         td.Controls.Add(new LiteralControl(FileExt));
        tr.Cells.Add(td);
        td = new TableCell();
         
        td.Controls.Add(new LiteralControl(FileSize.ToString()+"KB"));
        tr.Cells.Add(td);
        td = new TableCell();{}

        td.Controls.Add(new LiteralControl(FileModify.ToString("yyyy-MM-dd hh:mm:ss")));
        tr.Cells.Add(td);
        LinkButton likbutton = new LinkButton();
       
        likbutton.Click += new EventHandler(DisPlay);
        
        likbutton.Text = "删除";
        td = new TableCell();
        td.Controls.Add(likbutton);   
        tr.Cells.Add(td);  
        tableDirInfo.Rows.Add(tr);
        this.form1.Controls.Add(tableDirInfo);

    }


   
}

#19


你的思路是这样吗?
你在服务器提供一个文件夹路径,客户端可以删除里面的文件?

如果是这样(暂不考虑文件操作权限问题,你得考虑其安全性)
我先说一下我的思路,只供参考。
你要完成如下功能:
第一、获取给定虚拟目录的文件信息集合
第二、将集合以通过拼写htmltable展现给用户,并提供删除功能。
      所以你要传给LinkButton按钮要删除的文件的物理的“绝对路径”全名,而不仅仅是文件名。
第三、用户删除时,你要做如下两步操作
      1、删除服务器路径下的实际物理文件
      2、重新绘制htmlTable(或删掉tablerow)以同步文件列表
     注意其执行顺序,要先删除实际文件再重新绘制。

而你目前碰到的问题是,如何将全路径文件名传给Display(object sender,eventarg e)方法,
不知道我理解的对不对?

那么楼上已经有兄弟给出串参方法了,我在重复一遍。
第一步:传参
  LinkButton likbutton = new LinkButton();
  string fileName = "C:\test.txt";
   likbutton.Attributes.Add("fullFileName", fileName);likbutton.Click += new EventHandler(DisPlay);

第二步:接受参数
public void Display(object sender,eventarg e)
{
   LinkButton likbutton = sender as LinkButton;
   string fullFileName =  likbutton.Attributes["fullFileName"];   if(File.Exists(fullFileName))
   {
      File.Delete(fullFileName);
      ReDrawTable();//重新绘制Table,其实你可以使用现成的服务器控件。
   }
}
   
 我没有实际操作过,只是写了下思路,对与错还需要兄弟你来验证。   

#20


注意:每一行都对应一个LinkButton,每一个LinkButton对对应这一个实际的文件全路径名。

#21


引用 19 楼 laolaolai 的回复:
你的思路是这样吗?
你在服务器提供一个文件夹路径,客户端可以删除里面的文件?

如果是这样(暂不考虑文件操作权限问题,你得考虑其安全性)
我先说一下我的思路,只供参考。
你要完成如下功能:
第一、获取给定虚拟目录的文件信息集合
第二、将集合以通过拼写htmltable展现给用户,并提供删除功能。
  所以你要传给LinkButton按钮要删除的文件的物理的“绝对路径”全名,而不仅仅……





兄弟,完全正确!功能实现了.    谢谢你的帮助, 你很认真啊,有机会交个朋友呵呵。真得感谢!!!!!!11

#22


引用 20 楼 laolaolai 的回复:
注意:每一行都对应一个LinkButton,每一个LinkButton对对应这一个实际的文件全路径名。



再次重谢,分数不多,对不起。。。。

#1


Table tableDirInfo = new Table();  在线等高手! 接分!

#2


谁帮帮我! UP

#3


table.attribute["class"]="" 呗

#4


高度宽度等样式可以设置css,是.attribute("属性")添加

#5


filename可用session传递

#6


      
        Table tableDirInfo = new Table();
        tableDirInfo.Style.Add(HtmlTextWriterStyle.Width, "60px");
        tableDirInfo.Style.Add(HtmlTextWriterStyle.Height, "60px");

#7


引用 6 楼 sage425 的回复:
  Table tableDirInfo = new Table();
  tableDirInfo.Style.Add(HtmlTextWriterStyle.Width, "60px");
  tableDirInfo.Style.Add(HtmlTextWriterStyle.Height, "60px");




好像设置了没反应啊, 如果我想要这个Table 加上竖滚动条,怎么弄,是不是把高度定小就自动会有?

#8


问题二还没想到处理方法  你上google搜索下吧

#9


滚动条的话 就要使用其他控件  不是Table.你自己搜下吧 。我也好久没这样用过了。挺麻烦的

#10


引用 8 楼 sage425 的回复:
问题二还没想到处理方法 你上google搜索下吧


找不到,谢谢你了,我在看看吧,我用一个隐藏域可以删除但是,它传的值是循环的,所以不是当前自己想删除的那行,唉,,,!

#11


参数可以试试属性传递。
 protected void Page_Load(object sender, EventArgs e)
    {
         likbutton.Attributes["parm1"] = "Hello World";
    }

    public void DisPlay(object sender, EventArgs e)
    {
        Button lb = (Button)sender;
        Response.Write(lb.Attributes["parm1"]);
    }

#12


你的 Table tableDirInfo = new Table(); 要放在页面的<div> 或是其它标签里面,才可以在页面显示出来的

#13


cs 里面 做 stringbuilder 的拼接啊

css只要写在 table 的 class=‘’里面 

css样式表在 aspx 页面 导入 

就行了

#14


可以用Command和CommandArgument传递,不要用Click

#15


问题一:

/// 设置表样式
        /// </summary>
        /// <param name="table"></param>
        private void SetTableStyle(Table table)
        {
            table.Width = Unit.Percentage(100);
            table.CellPadding = 5;
            table.CellSpacing = 0;
            table.Style.Add("border-collapse", "collapse");
            table.BorderWidth = Unit.Pixel(1);
            table.BorderColor = Color.DarkGray;
        }
        /// <summary>
        /// 设置行样式
        /// </summary>
        /// <param name="row"></param>
        private void SetTableRowStyle(TableRow row)
        {
            row.BackColor = Color.Gainsboro;

            row.Height = Unit.Pixel(23);
            //row.Width = Unit.Percentage(100);

            row.Font.Size = FontUnit.Point(10);
            row.Font.Bold = true;
            
        }
        /// <summary>
        /// 设置单元格样式
        /// </summary>
        /// <param name="cell"></param>
        private void SetTableCellStyle(TableCell cell)
        {
            //cell.Width = Unit.Percentage(98);
            cell.BorderWidth = Unit.Pixel(1);
        }

以上只是一个简单的样式设置,只供参考,楼主根据需要自己改。

问题二、可参考11楼的方法用Attributes来实现。

#16


引用 15 楼 laolaolai 的回复:
问题一:

C# code

/// 设置表样式
        /// </summary>
        /// <param name="table"></param>
        private void SetTableStyle(Table table)
        {
            table.Width = Unit.Percentage(10……





还是不行,现在我需要解决两个问题,第一Table有竖向滚动条,第二委托是怎样传值的? --、

#17


第一,Table要加竖滚动条,可以用div将table包起来,给div加竖滚动条。
      用如下属性overflow-y:scroll
第二,likbutton.Click += new EventHandler(DisPlay);
     你已经限定用EventHandler即包括(object 和 eventargs)两个参数的委托了,
      请问,你的filename存放到哪里?只能让object和eventargs两个参数对象携带你想传入的参数来考虑。所以你可以用attributes来存放参数比较方便,否则你要自定义委托。

#18


引用 17 楼 laolaolai 的回复:
第一,Table要加竖滚动条,可以用div将table包起来,给div加竖滚动条。
  用如下属性overflow-y:scroll
第二,likbutton.Click += new EventHandler(DisPlay);
  你已经限定用EventHandler即包括(object 和 eventargs)两个参数的委托了,
  请问,你的filename存放到哪里?只能让obj……


你好laolaolai ! 请看我这个方法的代码,目的是要循环出项目文件夹里的数据库文件,从而获取它们的大小,修改时间等一系列信息, 我添加了一行删除的功能,如果我点击删除那么一行及文件夹里所对应的文件将删掉,那么我触发了linkbutton点击事件,通过传入唯一的Filename来进行删除, 可我现在只能用隐藏域获取Filename再删除时取到Filename, 因为是循环文件夹里的文件,所以我每次删除的都是最后一个文件,我不知道怎么才能弄了?望你帮我看看。



/// 获取文件列表
 /// </summary>
 private void GetFileList()
 {
     string strCurDir,FileName,FileExt;
     
     /**////文件大小
     long FileSize;
     
     /**////最后修改时间;
     DateTime FileModify;
 
     /**////初始化
     if(!IsPostBack)
     {
         /**////初始化时,默认为当前页面所在的目录
         strCurDir = Server.MapPath("~/databack/");
         lblCurDir.Text = strCurDir;
         txtCurDir.Text = strCurDir;
     }
     else
     {
         strCurDir = txtCurDir.Text;
         txtCurDir.Text = strCurDir;
         lblCurDir.Text = strCurDir;
     }
     FileInfo fi;
     DirectoryInfo dir;
     TableCell td;
     TableRow tr;
     Table tableDirInfo = new Table();
     tableDirInfo.BorderColor = Color.DarkGray;
     tableDirInfo.Height = 50;

     tr = new TableRow();
     tableDirInfo.BorderStyle = System.Web.UI.WebControls.BorderStyle.Solid;
     tableDirInfo.Width = 500;
     tr.BorderStyle = System.Web.UI.WebControls.BorderStyle.Solid;

     td = new TableCell();
     td.Controls.Add(new LiteralControl("文件名"));
     tr.Cells.Add(td);
     td = new TableCell();
     td.Controls.Add(new LiteralControl("文件类型"));
     tr.Cells.Add(td);
     td = new TableCell();
     td.Controls.Add(new LiteralControl("文件大小"));
     tr.Cells.Add(td);
     td = new TableCell();
     td.Controls.Add(new LiteralControl("最后修改时间"));
     tr.Cells.Add(td);
     td = new TableCell();
     td.Controls.Add(new LiteralControl("操作"));
     tr.Cells.Add(td);

     tableDirInfo.Rows.Add(tr);
     this.form1.Controls.Add(tableDirInfo);

     
     /**////针对当前目录建立目录引用对象
     DirectoryInfo dirInfo = new DirectoryInfo(txtCurDir.Text);
     
     /**////循环判断当前目录下的文件和目录
     foreach(FileSystemInfo fsi in dirInfo.GetFileSystemInfos())
     {
         FileName = "";
         FileExt = "";
         FileSize = 0;
         
         /**////如果是文件
         if(fsi is FileInfo)
         {
             fi = (FileInfo)fsi;
             
             /**////取得文件名
             FileName = fi.Name;
             this.txtend.Text = fi.Name;
             /**////取得文件的扩展名
             FileExt = fi.Extension;
             
             /**////取得文件的大小
             FileSize =fi.Length/1024;
             
             
             /**////取得文件的最后修改时间
             FileModify = fi.LastWriteTime;
         }
 
         /**////否则是目录
         else
         {
             dir = (DirectoryInfo)fsi;
             
             /**////取得目录名
             FileName = dir.Name;
             
             
             /**////取得目录的最后修改时间
             FileModify = dir.LastWriteTime;
             
             /**////设置文件的扩展名为"文件夹"
             FileExt = "文件夹";
         }
         
         /**////动态添加表格内容
         tr = new TableRow();
         td = new TableCell();
         td.Controls.Add(new LiteralControl(FileName));
         tr.Cells.Add(td);
         td = new TableCell();
         td.Controls.Add(new LiteralControl(FileExt));
        tr.Cells.Add(td);
        td = new TableCell();
         
        td.Controls.Add(new LiteralControl(FileSize.ToString()+"KB"));
        tr.Cells.Add(td);
        td = new TableCell();{}

        td.Controls.Add(new LiteralControl(FileModify.ToString("yyyy-MM-dd hh:mm:ss")));
        tr.Cells.Add(td);
        LinkButton likbutton = new LinkButton();
       
        likbutton.Click += new EventHandler(DisPlay);
        
        likbutton.Text = "删除";
        td = new TableCell();
        td.Controls.Add(likbutton);   
        tr.Cells.Add(td);  
        tableDirInfo.Rows.Add(tr);
        this.form1.Controls.Add(tableDirInfo);

    }


   
}

#19


你的思路是这样吗?
你在服务器提供一个文件夹路径,客户端可以删除里面的文件?

如果是这样(暂不考虑文件操作权限问题,你得考虑其安全性)
我先说一下我的思路,只供参考。
你要完成如下功能:
第一、获取给定虚拟目录的文件信息集合
第二、将集合以通过拼写htmltable展现给用户,并提供删除功能。
      所以你要传给LinkButton按钮要删除的文件的物理的“绝对路径”全名,而不仅仅是文件名。
第三、用户删除时,你要做如下两步操作
      1、删除服务器路径下的实际物理文件
      2、重新绘制htmlTable(或删掉tablerow)以同步文件列表
     注意其执行顺序,要先删除实际文件再重新绘制。

而你目前碰到的问题是,如何将全路径文件名传给Display(object sender,eventarg e)方法,
不知道我理解的对不对?

那么楼上已经有兄弟给出串参方法了,我在重复一遍。
第一步:传参
  LinkButton likbutton = new LinkButton();
  string fileName = "C:\test.txt";
   likbutton.Attributes.Add("fullFileName", fileName);likbutton.Click += new EventHandler(DisPlay);

第二步:接受参数
public void Display(object sender,eventarg e)
{
   LinkButton likbutton = sender as LinkButton;
   string fullFileName =  likbutton.Attributes["fullFileName"];   if(File.Exists(fullFileName))
   {
      File.Delete(fullFileName);
      ReDrawTable();//重新绘制Table,其实你可以使用现成的服务器控件。
   }
}
   
 我没有实际操作过,只是写了下思路,对与错还需要兄弟你来验证。   

#20


注意:每一行都对应一个LinkButton,每一个LinkButton对对应这一个实际的文件全路径名。

#21


引用 19 楼 laolaolai 的回复:
你的思路是这样吗?
你在服务器提供一个文件夹路径,客户端可以删除里面的文件?

如果是这样(暂不考虑文件操作权限问题,你得考虑其安全性)
我先说一下我的思路,只供参考。
你要完成如下功能:
第一、获取给定虚拟目录的文件信息集合
第二、将集合以通过拼写htmltable展现给用户,并提供删除功能。
  所以你要传给LinkButton按钮要删除的文件的物理的“绝对路径”全名,而不仅仅……





兄弟,完全正确!功能实现了.    谢谢你的帮助, 你很认真啊,有机会交个朋友呵呵。真得感谢!!!!!!11

#22


引用 20 楼 laolaolai 的回复:
注意:每一行都对应一个LinkButton,每一个LinkButton对对应这一个实际的文件全路径名。



再次重谢,分数不多,对不起。。。。