2012-03-09 8 views
0

私は以下の単純なページを持っています。LINQデータセット(GetFiles)のListViewへの値は?

<%@ Import namespace="System.IO" %> 

<script runat="server"> 
    int pageSize = 10; 
    int pageNum = 1; 

    protected override void OnInit(EventArgs e) 
    { 
     var currentPage = Directory.GetFiles(@"C:\mypath", "*.pdf").Skip((pageNum - 1) * pageSize).Take(pageSize).OrderBy(c => c).ToArray(); 
     Listview1.DataSource = currentPage; 
     Listview1.DataBind(); 

     base.OnInit(e); 
    } 

</script> 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
    <title>Test project</title> 
</head> 
<body> 
    <form id="form1" runat="server"> 
    <asp:ListView ID="Listview1" runat="server"> 
     <LayoutTemplate> 
      <table cellpadding="0" cellspacing="0"> 
       <tr> 
        <td>Titel</td> 
        <td>Size</td> 
       </tr> 
       <asp:PlaceHolder runat="server" ID="itemPlaceholder"></asp:PlaceHolder> 
      </table> 
     </LayoutTemplate> 
     <ItemTemplate> 
      <tr> 
       <td><a href=''><%#Eval("Name") %></a></td> 
       <td>0 kb</td> 
      </tr> 
     </ItemTemplate> 
    </asp:ListView> 
    </form> 
</body> 
</html> 

どのように私のリストビューにファイル名、サイズ、パスなどを取得できますか?私はちょうど直接GetFiles上のそれぞれのための単純なを持っていた場合、私は

FileInfo f = new FileInfo(pdfFile); 
long pdfSize = f.Length; 
Response.Write(Path.GetFileName(pdfFile) + " - " + pdfSize.ToString() + "<br/>"); 

しかし、どのように私は私のListViewでこれをachiveないような何かを行うことができますか?

+0

I <%#Path.GetFileNameWithoutExtension(Eval( "Name")。ToString())%> '正しい方向に私を導く可能性があることがわかりました。しかし、私はまだ "デ​​ータバインディングを取得しています: 'System.String'は名前 '名前'のプロパティを含んでいません。" "名前"以外に何が使えるのかよく分かりませんか? – brother

答えて

2

あなたはファイルではないファイル自体へのパスを選択しています。

これは動作するはずです:したがって、あなたはFileInfo「『可能System.String名前 '『名前のプロパティが含まれていないのは、あなたの例外データバインディング』を提起するものの特性は』:取得することはできません

var currentPage = Directory.GetFiles(@"C:\mypath", "*.pdf").Skip((pageNum - 1) * pageSize).Take(pageSize).OrderBy(c => c).ToArray(); 
     .Skip((pageNum - 1) * pageSize) 
     .Take(pageSize) 
     .OrderBy(c => c) 
     .Select(path => new System.IO.FileInfo(path)).ToArray(); 
+0

Worked - thx! :-) – brother

関連する問題