2010-09-09 67 views
0

我在這方面很新穎。我有用vb.net編寫的腳本,但我想用C#轉換,但它不能用作vb.net代碼。所以請幫助。VB.net到asp.net中的C#轉換

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" CellPadding="2" 
      ForeColor="#333333" GridLines="None" AllowPaging="True"> 
      <Columns> 
       <asp:TemplateField> 
        <ItemTemplate> 
         <asp:LinkButton ID="lnkdownload" runat="server" Text="Download" CommandName="Download" 
          CommandArgument='<%#Eval("FullName") +";" + Eval("Name") %>'></asp:LinkButton> 
        </ItemTemplate> 
       </asp:TemplateField> 
       <asp:BoundField DataField="Name" HeaderText="File Name" /> 
       <asp:BoundField DataField="Length" HeaderText="Size (Bytes)" /> 
      </Columns> 
      <FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" /> 
      <RowStyle BackColor="#F7F6F3" ForeColor="#333333" /> 
      <PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" /> 
      <SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" /> 
      <HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" /> 
      <EditRowStyle BackColor="#999999" /> 
      <AlternatingRowStyle BackColor="White" ForeColor="#284775" /> 
     </asp:GridView> 

Private Sub BindGrid() 
    Dim DataDirectory As String = "~/Uploads" 

    Dim files() As FileInfo = New DirectoryInfo(Server.MapPath(DataDirectory)).GetFiles 
    GridView1.DataSource = files 
    GridView1.DataBind() 


End Sub 
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 
    If Not IsPostBack Then 
     BindGrid() 
    End If 
End Sub 

Private Sub Downloadfile(ByVal fileName As String, ByVal FullFilePath As String) 
    Response.AddHeader("Content-Disposition", "attachment; filename=" & fileName) 
    Response.TransmitFile(FullFilePath) 
    Response.End() 
End Sub 

Protected Sub GridView1_RowCommand(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewCommandEventArgs) Handles GridView1.RowCommand 
    If e.CommandName = "Download" Then 
     Dim fileInfo() As String = e.CommandArgument.ToString().Split(";") 
     Dim FileName As String = fileInfo(1) 
     Dim FullPath As String = fileInfo(0) 
     Downloadfile(FileName, FullPath) 
    End If 
End Sub 

Protected Sub GridView1_PageIndexChanging(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewPageEventArgs) Handles GridView1.PageIndexChanging 
    GridView1.PageIndex = e.NewPageIndex 
    BindGrid() 

End Sub 
+2

哪部分代碼沒有像VB那樣執行?具體是什麼問題? – 2010-09-09 16:08:30

+2

我們通常喜歡看到你先把更多的工作放到裏面去。嘗試並詢問引起問題的特定行或片段,或者至少先通過在線轉換器運行它。我會很有幫助地說,aspx標記應該能夠保持不變。 – 2010-09-09 16:10:01

+0

以及我在我的問題嘗試在asp.net我的問題下載問題我給了我轉換的代碼,但它沒有奏效,這就是爲什麼我要求它。由於它非常緊急,我無法通過它進行研究。 – sayket 2010-09-09 16:21:41

回答

0

下面是一個使用VB.NET to C# Converter轉換爲C#代碼:喜歡VB.Net

private void BindGrid() 
{ 
    string DataDirectory = "~/Uploads"; 
    FileInfo[] files = new DirectoryInfo(Server.MapPath(DataDirectory)).GetFiles; 
    GridView1.DataSource = files; 
    GridView1.DataBind(); 
} 

protected void Page_Load(object sender, System.EventArgs e) 
{ 
    if (!IsPostBack) { 
     BindGrid(); 
    } 
} 

private void Downloadfile(string fileName, string FullFilePath) 
{ 
    Response.AddHeader("Content-Disposition", "attachment; filename=" + fileName); 
    Response.TransmitFile(FullFilePath); 
    Response.End(); 
} 

protected void GridView1_RowCommand(object sender, 
    System.Web.UI.WebControls.GridViewCommandEventArgs e) 
{ 
    if (e.CommandName == "Download") { 
     string[] fileInfo = e.CommandArgument.ToString().Split(";"); 
     string FileName = fileInfo[1]; 
     string FullPath = fileInfo[0]; 
     Downloadfile(FileName, FullPath); 
    } 
} 

protected void GridView1_PageIndexChanging(object sender, 
    System.Web.UI.WebControls.GridViewPageEventArgs e) 
{ 
    GridView1.PageIndex = e.NewPageIndex; 
    BindGrid(); 
} 
+0

抱歉,它不起作用。我也嘗試了其他幾個轉換器。但不能使它工作。 – sayket 2010-09-09 17:04:39

+0

如何不工作?你是否遇到異常? – Chuck 2010-09-09 17:15:21

+0

沒有頁面只是空白沒有網格視圖....... – sayket 2010-09-09 17:55:08

0

C#不具有的「把手」關鍵字做,所以它看起來像你的GridView是不正常連接到必要的處理程序。嘗試將以下參數添加到GridView標記中:

OnRowCommand="GridView1_RowCommand" 

請注意,您還需要爲頁面索引更改事件做同樣的事情。

+0

試過了。但沒有工作....... – sayket 2010-09-09 17:55:55

+0

它不工作?還是空白頁? – 2010-09-09 18:08:40

+0

耶................. – sayket 2010-09-10 15:11:40