表中的.txt内容

时间:2012-05-11 16:33:11

标签: c# asp.net .net

我正在尝试在表格中显示文本文件的内容。我已经成功读取了文本文件,并在div中显示.txt文件内容,但是当我尝试在表中显示内容时会抛出错误。

我做错了吗?

这是我的代码隐藏:

protected void btnUpld_Click(object sender, EventArgs e)
{
    Stream theStream = file1.PostedFile.InputStream; 
    //file1 is an asp:FileUpload on .aspx

    using (StreamReader viewer = new 
           StreamReader((Stream)file1.PostedFile.InputStream))
    {
        while (viewer.Peek() > 0)
        {
            string txtskip = viewer.ReadLine();
            Table1.InnerHtml += txtskip; 
            //Table1 is the table i'm wanting to put the results in on my .aspx
         }
    }
}

4 个答案:

答案 0 :(得分:2)

表格控件没有Innerhtml这样的属性。您需要将文本分配到表格行中的列。

你的代码应该是这样的

<asp:Table ID="Table2" runat="server">
    <asp:TableRow ID="TableRow1" runat="server">
        <asp:TableCell ID="TableCell1" runat="server">
        This is Cell 1
        </asp:TableCell>
        <asp:TableCell ID="TableCell2" runat="server">
        This is Cell 2
        </asp:TableCell>
    </asp:TableRow>
</asp:Table>

现在在服务器端你可以写

TableCell1.Text=somestring;
TableCell2.Text=anotherstring;

答案 1 :(得分:1)

此代码可以帮助您

 protected void btnRender_Click(object sender, EventArgs e)
{
    using (StreamReader viewer = new StreamReader((Stream)file1.PostedFile.InputStream))
    {
        TableRow tr;
        TableCell tc;
        while (viewer.Peek() > 0)
        {
            string txtskip = viewer.ReadLine();
            //   Table1.InnerHtml += txtskip; //Table1 is the table i'm wanting to put the results in on my .aspx
            tr = new TableRow();
            tc = new TableCell();
            tr.Cells.Add(tc);
            Table1.Rows.Add(tr);
            tc.Text = txtskip;
        }
    }
}

谢谢,

也先

答案 2 :(得分:0)

你可以这样做。

您可以在td内放置需要填充数据的while (viewer.Peek() > 0) { string txtskip = viewer.ReadLine(); yourLiteral.text += txtskip; } 。 然后

{{1}}

答案 3 :(得分:0)

你真的不应该使用文本文件来加载这样的内容。您一定会遇到问题,因为迟早会锁定对该文件的访问权限。您可以通过将内容加载到Cache并从那里加载来消除这种风险。

按照上面的建议,您可以修改下面的示例以从Cache检索文本,但为了清楚起见,并回答您的初始问题,此示例直接从文件中加载:

using (var reader = new StreamReader("bla.txt"))
{
    //use the object initializer to prepare a new literal control
    var litCtrl = new Literal 
    { 
        Mode = LiteralMode.PassThrough, 
        Text = string.Format("<table>{0}</table>", reader.ReadToEnd()))
    }

    //use a literal control to display the table on the page
    pnlContainer.Controls.Add(litCtrl);
}