我正在尝试在表格中显示文本文件的内容。我已经成功读取了文本文件,并在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
}
}
}
答案 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);
}