tags:

views:

45

answers:

2

Hi, I am very new at this area. I have script written in vb.net but I want to convert in C# but it is not working as the vb.net code.so please help.

<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
A: 

Here is the code converted to c# using a 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();
}
Kelsey
sorry but it is not working. I also have tried several other converter. But Could not make it work.
sayket
HOW is it not working? Are you getting an exception?
Chuck
no the page is just blank no grid view.......
sayket
A: 

C# doesn't have the "Handles" keyword like VB.Net does, so it looks like your GridView is not properly wired up to the necessary handler. Try adding the following parameter to your GridView tag:

OnRowCommand="GridView1_RowCommand"

Note you'll need to do the same thing for your page index changing event as well.

Dillie-O
Tried it. but not working.......
sayket
How is it not working? Still the blank page?
Dillie-O
Yah.................
sayket