我正在使用asp.net c#。我有以下代码,这段代码工作正常。但问题是gridview在左边生成一个额外的列。
<asp:GridView Width="96%" CssClass="grdclass" ID="grd"
runat="server" AutoGenerateColumns="False" DataKeyNames="STAT_ID">
<AlternatingRowStyle BackColor="#FFCC99" />
<Columns>
<asp:TemplateField>
<HeaderTemplate>
<th scope="col">الهاتف</th>
</HeaderTemplate>
<ItemTemplate>
<td class="row_style">
<div class="row_style">
<%#Eval("PHONE_Num") %>
</div>
</td>
</ItemTemplate>
</asp:TemplateField>
</Columns>
<EmptyDataTemplate>No Record Found</EmptyDataTemplate>
<HeaderStyle BackColor="Aquamarine" />
<RowStyle BackColor="#FFFFCC" />
</asp:GridView>
请检查上面的代码并指导我哪里出错,或者我该如何摆脱这个问题。
答案 0 :(得分:0)
您不需要将表元素定义放在网格视图中,如下所示:
<Columns>
<asp:TemplateField>
<HeaderTemplate>
الهاتف
</HeaderTemplate>
<ItemTemplate>
<div class="row_style">
<%#Eval("PHONE_Num") %>
</div>
</ItemTemplate>
</asp:TemplateField>
</Columns>
答案 1 :(得分:0)
使用子标题创建GridView
的方法有很多种。但是,随着ListView
的引入,大多数方法都有点矫枉过正。尝试使用这样的ListView
。
<asp:ListView ID="CustomersList" runat="server">
<LayoutTemplate>
<table class="grdclass">
<thead>
<tr>
<th colspan="2">Phone Numbers</th>
</tr>
<tr>
<th>Home</th>
<th>Mobile</th>
</tr>
</thead>
<tbody>
<tr id="itemplaceholder" runat="server"></tr>
</tbody>
</table>
</LayoutTemplate>
<ItemTemplate>
<tr>
<td><%# Eval("PHONE_Num") %></td>
<td><%# Eval("MOBILE_Num") %></td>
</tr>
</ItemTemplate>
</asp:ListView>
ListView
让您可以更好地控制html标记。