asp.net 动态列显示

今天接到一个需求,一个列表页,前面几列是固定的,后面的列需要解析数据,根据解析出来的数据动态显示列。

下面代码中,Column是动态列的列明,类型为List<string>的全局变量,dt1是动态列的数据源,类型为DataTable的全局变量

public List<string> Column = new List<string>();
public DataTable dt1 = new DataTable();

 

<div class="content">
                <asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
                <asp:UpdatePanel ID="UpdatePanel1" runat="server">
                    <ContentTemplate>
                        <div id="table" style="margin: auto; overflow: auto; margin-top: 10px;width:2100px;">
                            <table id="tableList" class="table table-striped table-bordered table-hover">
                                <thead>
                                    <tr>
                                        <th>城市名称</th>
                                        <th>监测点</th>
                                        <th>数据类型</th>
                                        <th>时间</th>
                                        <th>设备类型</th>
                                        <% foreach (string column in Column)
                                           { %>
                                        <th><%=column+"km"%></th>
                                        <%} %>
                                    </tr>
                                </thead>
                                <tbody id="listbody">
                                    <% int i = 0; //奇偶行的标志变量,用0、1标记
                                       foreach (System.Data.DataRow dr in dt1.Rows)
                                       {
                                           if (0 == i)
                                           {
                                               i = 1; %>
                                    <tr class="">
                                        <%}
                                           else
                                           {
                                               i = 0; %>
                                        <tr class="gray">
                                            <%}%>
                                            <td><%=dr["city_name"] %></td>
                                            <td><%=dr["remark"] %></td>
                                            <td><%=dr["lddatatype"] %></td>
                                            <td><%=dr["time"] %></td>
                                            <td><%=dr["devicetype"] %></td>
                                            <%foreach (string column in Column)
                                              { %>
                                            <td><%=dr[""+column+""].ToString()==""?"":Math.Round(Convert.ToDecimal(dr[""+column+""]),3).ToString() %></td>
                                            <%} %>
                                        </tr>
                                        <%}%>

                                        <%--<asp:Repeater runat="server" ID="rptData">
                                            <ItemTemplate>
                                                <tr class="">

                                                    <td><%#Eval("city_name") %></td>
                                                    <td><%#Eval("remark") %></td>
                                                    <th><%#Eval("siteid") %></th>
                                                    <th><%#Eval("deviceid") %></th>
                                                    <th><%#Eval("lddatatype") %></th>
                                                    <th><%#Eval("time") %></th>
                                                    <th><%#Eval("devicetype") %></th>
                                                    <% foreach (string column in Column)
                                                       { %>
                                                    <th><%=Eval(""+column+"")%></th>
                                                    <%} %>
                                                </tr>
                                            </ItemTemplate>

                                            <AlternatingItemTemplate>
                                                <tr class="gray">
                                                    <td><%#Eval("city_name") %></td>
                                                    <td><%#Eval("remark") %></td>
                                                    <th><%#Eval("siteid") %></th>
                                                    <th><%#Eval("deviceid") %></th>
                                                    <th><%#Eval("lddatatype") %></th>
                                                    <th><%#Eval("time") %></th>
                                                    <th><%#Eval("devicetype") %></th>
                                                    <% foreach (string column in Column)
                                                       { %>
                                                    <th><%=Eval(""+column+"")%></th>
                                                    <%} %>
                                                </tr>
                                            </AlternatingItemTemplate>
                                            <FooterTemplate>
                                                <asp:Label ID="noList" Text="<tr bgcolor='#FFFFFF'><td colspan='6'>暂无符合条件的记录!</td></tr>" runat="server" Visible='<%#bool.Parse((rptData.Items.Count==0).ToString())%>'></asp:Label>
                                            </FooterTemplate>
                                        </asp:Repeater>--%>
                                </tbody>
                            </table>
                        </div>
                    </ContentTemplate>
                </asp:UpdatePanel>
                <input type="hidden" id="hidRoleID" runat="server" value="" />
            </div>

 

效果类似下图,汉字列是固定列,后面的数字列是动态解析的列

 

 

 

程序猿

微信扫码关注公众号,一起学习进步,里面有.Net相关满满的干货,等你来拿。

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一个程序员_zhangzhen

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值