.net中控件的属性都是可以编程的

解决方案 »

  1.   

    我试过,好像不行
    DataGrid1.Columns(0).ItemStyle.HorizontalAlign=HorizontalAlign.Center这样写的时候就会出错,说Columns(index)超出上限什么。
      

  2.   

    是不是你的DataGrid1里面就还没有值?
      

  3.   

    我试了,还是不可以,错误信息: System.ArgumentOutOfRangeException: 索引超出范围。必须为非负并小于集合大小。参数名:index
      

  4.   

    你的Columns(0)是不是设了readonly=true ? 不要设为只读,若还不行
    等一下我在本机试试
      

  5.   

    cnn = New SqlConnection("server=localhost;uid=sa;pwd=sa;database=Student")
    cmm = New SqlDataAdapter(sql1, cnn)
    cmm.Fill(ds, "Result")
    dw = ds.Tables("Result").DefaultView
    rcount=dw.count
    If dw.Count > 0 Then
    dgresult.DataSource = ds
    dgresult.DataMember = "Result"
    dgresult.DataBind()
    'dgresult.Columns(0).ItemStyle.HorizontalAlign=HorizontalAlign.Center
    End If
    代码太长,主要是这部分吧。
    谢谢!!
      

  6.   

    因为我用这个DataGrid来返回搜索的结果,不同的搜索内容(论坛、用户等等),搜出来的数据内容是不同的(论坛的帖子,用户的信息等)因此我需要修改指定的列的样式,就遇到这个问题
      

  7.   

    <asp:datagrid ID="dgresult" Runat="server" BackColor="#99ccff" AutoGenerateColumns="true" Width="100%" AllowPaging="True" PageSize="10" PagerStyle-Mode="NumericPages" PagerStyle-PageButtonCount="2" BorderColor="black" HeaderStyle-HorizontalAlign="Center" HeaderStyle-VerticalAlign="Bottom" ItemStyle-VerticalAlign="top" ItemStyle-HorizontalAlign="Left" PagerStyle-HorizontalAlign="Right"></asp:datagrid>
      

  8.   

    我试了完全没问题,关键在于不要让datagrid自动生成列:比如这样:
    <asp:DataGrid
            ID="mydatagrid"
            runat="server"
            width="770"
            align="center"  
            CellPadding=4
            CellSpacing=0
            AllowPaging=True
            PagerStyle-Mode=NumericPages
            PagerStyle-HorizontalAlign=Right
            PageSize=12
            OnPageIndexChanged="change_page_index"        
            HeaderStyle-BackColor="#94CBFF"
            autogeneratecolumns="False"
            BorderWidth="1"
            style="font-size:9pt"
            BorderColor="black"> 
      <Columns>
       <asp:TemplateColumn
        ItemStyle-HorizontalAlign=Center>
       <ItemTemplate>
       <img src="image\folder.gif">
       </ItemTemplate>
       </asp:TemplateColumn>
       <asp:HyperLinkColumn
    datanavigateurlfield="id"
    DataNavigateUrlFormatString="bbs_view.aspx?id={0}"
    DataTextField="subject"
     HeaderText="主题"
        Target=_blank
        ItemStyle-BackColor=#F7FBFF
        />
        <asp:boundcolumn
              DataField="subname"
              HeaderText="作者"
              ItemStyle-BackColor=#F7FBFF
              />
       <asp:boundcolumn
              DataField="subdate"
              HeaderText="发表时间"
              ItemStyle-BackColor=#F7FBFF
              />
               
      <asp:boundcolumn
              DataField="replynum"
              HeaderText="回复"
              ItemStyle-BackColor=#F7FBFF
              
              ItemStyle-Width=25 />
      <asp:boundcolumn
              DataField="hitnum"
              HeaderText="点击"
              ItemStyle-BackColor=#F7FBFF
              
              ItemStyle-Width=25/>
      </Columns>
    </asp:DataGrid>
    </form>
      

  9.   

    上面只是给你一个实例,你可以根据自己的情况定义模版
    autogeneratecolumns="False"是关键
      

  10.   

    我觉得可能是datagrid自动生成的列,不可编程,自定义每一列就ok了,
    不知这种看法对不对
      

  11.   

    这个我也知道,因为我现在做的是一个搜索功能的页面,可以搜索论坛中的帖子,也可以搜索注册用户的信息等等,这些不相关的表应该不可以放在同一个DataGrid中吧。
      

  12.   

    我曾经成功的实现某一行的某一列改变样式。我印象中好像也实现了列的样式改变,不过数据在别的机器上,好像使用Cell()这么一个属性,记不清楚了。
      

  13.   

    假如你不让datagrid自动生成列
    dgresult.Columns(0).ItemStyle.HorizontalAlign=HorizontalAlign.Center
    就不会报错
      

  14.   

    使用这个试试?
    DataGrid1.Items[0].Cells[0].Attributes["HorizontalAlign"]=HorizontalAlign.Center