2010-09-09 5 views
0

Je suis très nouveau dans ce domaine. J'ai un script écrit en vb.net mais je veux convertir en C# mais il ne fonctionne pas comme le code de vb.net.so s'il vous plaît aider.VB.net à la conversion C# dans asp.net

<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

Quelle partie du code ne fonctionne pas comme l'a fait le VB? Quel est le problème en particulier? –

+2

Nous aimons généralement vous voir mettre plus de travail en premier. Faites une tentative et posez des questions sur des lignes ou des extraits spécifiques qui causent des problèmes, ou au moins, exécutez-le d'abord via un convertisseur en ligne. J'aiderai assez pour dire que le balisage aspx devrait pouvoir rester inchangé. –

+0

bien j'ai essayé dans mon problème de téléchargement de question dans asp.net j'ai donné le code que j'ai converti mais cela n'a pas fonctionné c'est pourquoi je le demande. Comme il est très urgent je ne pouvais pas étudier à travers. – sayket

Répondre

0

Voici le code converti en C# en utilisant un VB.NET to C# Converter:

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

désolé mais cela ne fonctionne pas. J'ai aussi essayé plusieurs autres convertisseurs. Mais ne pouvait pas le faire fonctionner. – sayket

+0

Comment ça ne marche pas? Avez-vous une exception? – Chuck

+0

pas la page est juste vide aucune vue de la grille ....... – sayket

0

C# ne pas le mot-clé "poignées" comme VB.Net fait, il ressemble à votre GridView est pas correctement câblé au gestionnaire nécessaire. Essayez d'ajouter le paramètre suivant à votre balise GridView:

OnRowCommand="GridView1_RowCommand" 

Notez que vous aurez besoin de faire la même chose pour votre index de page événement qui change aussi.

+0

Je l'ai essayé. mais ne fonctionne pas ....... – sayket

+0

Comment ça ne marche pas? Toujours la page blanche? –

+0

Yah ................. – sayket