在DataGrid属性的设置中取消自动创建列,即AutoGenerateColumns="False"。在在<Columns>设置要显示的列即可。如:
<asp:DataGrid id="DataGrid1" runat="server" AutoGenerateColumns="False">
<Columns>
<asp:BoundColumn DataField="ABSTRACT_SMALL_SORT_ID" HeaderText="小类Id"></asp:BoundColumn>
<asp:BoundColumn DataField="ABSTRACT_BIG_SORT_ID" HeaderText="所属大类Id"></asp:BoundColumn>
<asp:BoundColumn DataField="ABSTRACT_SMALL_SORT" HeaderText="小类名称"></asp:BoundColumn>
<asp:BoundColumn DataField="ABSTRACT_SMALL_SORT_INTRODUCTI" HeaderText="小类介绍"></asp:BoundColumn></Columns>
</asp:DataGrid>

解决方案 »

  1.   

    感谢您使用微软产品。WebForm中的DataGrid的Column继承System.Web.UI.WebControls.DataGridColumn接口,而DataTable的Column是System.Data.DataColumn类,两者完全不同。DataGrid的DataSource绑定之后,并
    不会把相应的DataTable的Column转换给DataGrid的Column,因此DataGrid的Column保持不变。所以您在绑定DataTabler之后,Column.Count仍然是1(应该是您在ASPX页面设置的一列)。为了
    对DataTable中的各个Column操作,必须将它们手工赋值给DataGrid的Column,或是如楼上所说,设定AutoGenerateColumns="False",然后在ASPX页面绑定每一列。您可以参考:
    http://www.csdn.net/expert/topic/895/895616.xml
    希望能对您有所帮助!======================
    - 微软全球技术中心本贴子仅供CSDN的用户作为参考信息使用。其内容不具备任何法律保障。您需要考虑到并承担使用此信息可能带来的风险。具体事项可参见使用条款(http://support.microsoft.com/directory/worldwide/zh-cn/community/terms_chs.asp)。
    为了为您创建更好的讨论环境,请参加我们的用户满意度调查(http://support.microsoft.com/directory/worldwide/zh-cn/community/survey.asp?key=(S,49854782))。
    ======================