一个简单的文件管理器,显示upload文件夹下的文件,原来是VB的,能用,改写成C#之后不知道哪的问题可执行但文件内容不显示,请各位帮忙看一下问题在哪,谢谢!================
<%@ Import Namespace="System.IO"%>
<%@ Import Namespace="System.Data"%>
<script language="C#" runat="server">
void PageLoad()
{
 if(!IsPostBack)
 {
  BindData();
 }
}
void MyDG_Delete(Object sender,DataGridCommandEventArgs E)
{
 String myfile;
 myfile=Server.MapPath(@"upload\"+MyDG.DataKeys[E.Item.ItemIndex]);
 File.Delete(myfile);
 MyDG.EditItemIndex=-1;
 BindData();
}
void BindData()
{
 DirectoryInfo mydir=new DirectoryInfo(Server.MapPath("upload"));
 MyDG.DataSource=mydir.GetFiles("*.*");
 MyDG.DataBind();
}
</script><html>
<body>
<h4 align="center">我的文件管理器</h4>
<a href="upload.aspx">上传文件</a>
<form runat="server">
<ASP:DataGrid id="MyDG" HeaderStyle-BackColor="#BCBCBC" Width="100%" AutoGenerateColumns="false"  OnDeleteCommand="MyDG_Delete"  DataKeyField="Name" runat="server">
<Columns>
<asp:HyperLinkColumn HeaderText="名称" DataTextField="Name" DataNavigateUrlField="Name" DataNavigateUrlFormatString="upload/{0}" Target="_blank"/>
<asp:BoundColumn HeaderText="大小" DataField="Length"/>
<asp:BoundColumn HeaderText="类型" DataField="Extension" />
<asp:BoundColumn HeaderText="修改时间" DataField="LastWriteTime" />
<asp:ButtonColumn Text="删除" CommandName="Delete"/>
</Columns>
</asp:DataGrid>
</form>
</body>
</html>

解决方案 »

  1.   

    //VB源码
    <%@ Import Namespace="System.IO"%>
    <%@ Import Namespace="System.Data"%>
    <script language="VB" runat="server">
    Sub Page_Load(Sender As Object, E As EventArgs)
    If Not Page.IsPostBack Then
    Call BindData()
    End If
    End Sub
    '单击删除时执行该事件过程
    Sub MyDataGrid_Delete(Sender As Object, E As DataGridCommandEventArgs)
    '执行删除操作
    Dim myfile As String
    myfile=Server.Mappath("upload\" & MyDataGrid.DataKeys(CInt(E.Item.ItemIndex)))
    File.Delete(myfile)
    '重新绑定
    MyDataGrid.EditItemIndex = -1
    Call BindData()
    End Sub
    '绑定数据子程序
    Sub BindData()
    Dim mydir As New Directoryinfo(Server.Mappath("upload"))
    MyDataGrid.DataSource=mydir.GetFiles("*.*")
    MyDataGrid.DataBind()
    End Sub
    </script>
    <html>
    <body>
    <h4 align="center">我的文件管理器</h4>
    <a href="upload.aspx">上传文件</a>
    <form runat="server">
    <ASP:DataGrid id="MyDataGrid" HeaderStyle-BackColor="#BCBCBC" Width="100%" AutoGenerateColumns="false"  OnDeleteCommand="MyDataGrid_Delete"  DataKeyField="Name" runat="server">
    <Columns>
    <asp:HyperLinkColumn HeaderText="名称" DataTextField="Name" DataNavigateUrlField="Name" DataNavigateUrlFormatString="upload/{0}" Target="_blank"/>
    <asp:BoundColumn HeaderText="大小" DataField="Length"/>
    <asp:BoundColumn HeaderText="类型" DataField="Extension" />
    <asp:BoundColumn HeaderText="修改时间" DataField="LastWriteTime" />
    <asp:ButtonColumn Text="删除" CommandName="Delete"/>
    </Columns>
    </asp:DataGrid>
    </form>
    </body>
    </html>
      

  2.   

    if(!IsPostBack) 

      BindData(); 
    IsPostBack你在哪定义的?
    你C#代码和VB代码在调试时走的逻辑过程是一样的不?