用于ASP的引导程序从txt文件填充表

时间:2016-04-12 20:15:58

标签: c# asp.net asp.net-mvc asp.net-mvc-3 asp.net-mvc-4

我一直在试图用txt文件填充使用Bootstrap for ASP制作的表格,但似乎我一直在坚持这样做...... 我将离开我的尝试,所以你可以看看它,也许可以帮助我。 txt文件中使用的格式如下:

AFragment

这是我尝试做的事情:

Column1Txt Column2Txt Column3Txt Column4Txt
Column1Txt Column2Txt Column3Txt Column4Txt
Column1Txt Column2Txt Column3Txt Column4Txt
Column1Txt Column2Txt Column3Txt Column4Txt

我知道它甚至不在桌子内部,但我也尝试在桌面内使用它并且它也不能正常工作。

感谢您的提前时间。

1 个答案:

答案 0 :(得分:2)

首先,您需要读入文本文件的内容并解析数据。看看样本,我会假设以空格分隔,但你必须自己决定。有无数种方法可以做到这一点。这是一个:

类或结构或保持数据:

public class ColumnData()
{
    public string Column1 { get; set; }
    public string Column2 { get; set; }
    public string Column3 { get; set; }
    public string Column4 { get; set; }
}

解析逻辑:

string rawText = System.IO.File.ReadAllText("Full path to file");
string[] rows = rawText.Split(System.Environment.NewLine);
List<ColumnData> data = rows
    .Select(rowText => rowText.Split(" "))
    .Select(rowArray => new ColumnData
    {
        Column1 = rowArray[0],
        Column2 = rowArray[1],
        Column3 = rowArray[2],
        Column4 = rowArray[3]
    })
    .ToList();

然后,一旦您以可用格式获得数据,就可以创建适当的HTML。你可以通过GridView,Repeater,甚至只是一些字符串操作来手动构建HTML。如果您选择最后一个选项,则需要以某种方式将其添加到页面中,例如添加Literal控件并使用手动构建的字符串填充它。

以下是使用手动构建HTML字符串的示例:

标记中的文字控制:

<table class="table table-striped">
    <!-- table head -->
        <thead>
            <tr>
                <th>#</th>
                <th>Column1</th>
                <th>Column2</th>
                <th>Column3</th>
                <th>Column4</th>
            </tr>
        </thead>
        <tbody>
            <asp:Literal id="columnData" runat="server"/>
        </tbody>
    </table>

构建字符串的代码(使用解析逻辑中的data):

string rowFormat = "<tr><td></td><td>{0}</td><td>{1}</td><td>{2}</td><td>{3}</td></tr>";
string[] rowStrings = data
    .Select(row => string.Format(rowFormat, row.Column1, row.Column2, row.Column3, row.Column4))
    .ToArray();
string html = string.Join(System.Environment.NewLine, rowStrings);

// Populate literal control
columnData.Value = html;

修改:免责声明:这只是概念验证类型代码。请注意,它有没有错误处理。我根本不知道我会用它;这只是为了向您展示一般的想法。