首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >设置行数据绑定事件内的Gridview的列宽。

设置行数据绑定事件内的Gridview的列宽。
EN

Stack Overflow用户
提问于 2013-03-24 22:03:49
回答 2查看 10.2K关注 0票数 1

我有下面这段代码。我没有在我的网格视图中定义任何边界字段。我在aspx.cs文件中使用sql查询来检索数据。是否可以调整每一列0、1、2的宽度?有什么办法可以让我研究一下吗?我已经尝试了很多方法,但仍然不起作用。请帮帮我!

代码语言:javascript
复制
<asp:GridView ID="surgicalGridView" runat="server"
    CaptionAlign="Top" HorizontalAlign="Justify" 
    DataKeyNames="id" onselectedindexchanged="surgicalGridView_SelectedIndexChanged"
    ToolTip="Excel File Download Tool" CellPadding="4" ForeColor="#333333" 
    GridLines="None" Width="854px">

     <RowStyle BackColor="#E3EAEB" />
       <Columns>
       <asp:CommandField ShowSelectButton="True" SelectText="Download" 
               ControlStyle-ForeColor="Blue">
<ControlStyle ForeColor="Blue"></ControlStyle>
           </asp:CommandField>
       </Columns>
     <FooterStyle BackColor="#1C5E55" Font-Bold="True" ForeColor="White" />
     <PagerStyle BackColor="#666666" ForeColor="White" HorizontalAlign="Center" />
     <SelectedRowStyle BackColor="#C5BBAF" Font-Bold="True" ForeColor="#333333" />
     <HeaderStyle   BackColor="#1C5E55" Font-Bold="True" ForeColor="White" />
     <EditRowStyle BackColor="#7C6F57" />
     <AlternatingRowStyle BackColor="White" />
        <SortedAscendingCellStyle BackColor="#F8FAFA" />
        <SortedAscendingHeaderStyle BackColor="#246B61" />
        <SortedDescendingCellStyle BackColor="#D4DFE1" />
        <SortedDescendingHeaderStyle BackColor="#15524A" />
    </asp:GridView>
    <br />
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-03-24 22:14:39

您可以在gridviewOnRowDataBound事件上执行此操作。

代码语言:javascript
复制
protected void surgicalGridView_RowDataBound(object o, GridViewRowEventArgs e)
{           
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
         e.Row.Cells[0].Width = new Unit("200px");
         e.Row.Cells[1].Width = new Unit("400px");
         // and so on
    } 
}

将此代码添加到Gridview标记中

代码语言:javascript
复制
<asp:GridView ...............................
        onrowdatabound="surgicalGridView_RowDataBound">    // just add this event and execute the above code
 </asp:GridView>
票数 7
EN

Stack Overflow用户

发布于 2015-02-07 00:33:43

我的解决方案如下。我有一个网格,其中有2个定义的列,其余的是动态绑定的。我不知道为什么用(e.Row.Cells.Width = new Unit("200px");)设置列不起作用,但我找到了替代方法。另外,我的网格启用了排序,因此也就有了linkbutton代码。

代码语言:javascript
复制
const int FirstControl = 0;
const int GriDefinedFieldsCount = 2;

protected void grd_RowDataBound(object sender, GridViewRowEventArgs e)
{
     if (e.Row.RowType == DataControlRowType.Header)
     {
         int col = 0;
         foreach (DataColumn dc in SiteManager.Reports.ReportData.Columns)
         {
             if (dc.ColumnName == "Notes")
             {
                 LinkButton lnk = (e.Row.Cells[col + GriDefinedFieldsCount].Controls[FirstControl] as LinkButton);
                 lnk.Width = Unit.Pixel(300);
             }
             col += 1;
         }
     }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15599411

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档