ASP.NET中GridView绑定列与文本框列的顺序调换方法问询
ASP.NET GridView列顺序调换解决方案
答案是肯定的:完全可以调换这两列的显示顺序。ASP.NET GridView的列展示顺序完全由<Columns>节点内的字段定义顺序决定——先声明的列会显示在左侧,后声明的在右侧。
修改后的完整代码
只需要将包含TextBox的TemplateField放在绑定数据的BoundField前面即可,同时修正DataField的大小写匹配问题(后台DataTable列名为col1,需与前台一致):
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" BackColor="#DEBA84" BorderColor="#DEBA84" BorderStyle="None" BorderWidth="1px" CellPadding="3" CellSpacing="2"> <FooterStyle BackColor="#F7DFB5" ForeColor="#8C4510" /> <HeaderStyle BackColor="#A55129" Font-Bold="True" ForeColor="White" /> <PagerStyle ForeColor="#8C4510" HorizontalAlign="Center" /> <RowStyle BackColor="#FFF7E7" ForeColor="#8C4510" /> <SelectedRowStyle BackColor="#738A9C" Font-Bold="True" ForeColor="White" /> <SortedAscendingCellStyle BackColor="#FFF1D4" /> <SortedAscendingHeaderStyle BackColor="#B95C30" /> <SortedDescendingCellStyle BackColor="#F1E5CE" /> <SortedDescendingHeaderStyle BackColor="#93451F" /> <Columns> <%-- TextBox列:显示在第一列 --%> <asp:TemplateField> <ItemTemplate> <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> </ItemTemplate> </asp:TemplateField> <%-- 绑定数据列:显示在第二列 --%> <asp:BoundField DataField="col1" HeaderText="MyColumn" /> </Columns> </asp:GridView>
关键说明
- 后台
rGrdV方法无需修改,保持原有逻辑生成DataTable即可。 - 务必添加
AutoGenerateColumns="False",防止GridView自动生成额外列打乱自定义的列顺序。 DataField的值必须与后台DataTable的列名完全匹配(包括大小写),否则会出现数据绑定失败的情况。
内容的提问来源于stack exchange,提问作者Raghav Rawat
相关产品推荐
相关产品推荐

