代码之家  ›  专栏  ›  技术社区  ›  Jacob Nelson

GridView获取列/行的高度和宽度

  •  0
  • Jacob Nelson  · 技术社区  · 14 年前

    <form id="form1" runat="server">
    <div>
        <asp:Table ID="Table1" runat="server">
            <asp:TableRow>
                <asp:TableCell>
                </asp:TableCell><asp:TableCell>
                    <asp:GridView ID="GridView2" runat="server" ShowHeader="false">
                    </asp:GridView>
                </asp:TableCell></asp:TableRow>
            <asp:TableRow>
                <asp:TableCell>
                    <asp:GridView ID="GridView3" runat="server" ShowHeader="false">
                    </asp:GridView>
                </asp:TableCell><asp:TableCell>
                    <asp:GridView ID="GridView4" runat="server" ShowHeader="false">
                    </asp:GridView>
                </asp:TableCell></asp:TableRow>
        </asp:Table>
    </div>
    <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" />
    </form>
    

    下面是代码behinde:

    protected void Page_Load(object sender, EventArgs e)
            {
                if (!IsPostBack)
                {
                    DataTable dt1 = new DataTable();
                    DataTable dt2 = new DataTable();
                    DataTable dt3 = new DataTable();
    
                    DataRow row;
    
                    dt1.Columns.Add(new DataColumn("Description", Type.GetType("System.String")));
                    dt1.Columns.Add(new DataColumn("ROXORZZOZO!!", Type.GetType("System.String")));
                    dt1.Columns.Add(new DataColumn("MY", Type.GetType("System.String")));
                    row = dt1.NewRow();
                    row["Description"] = "WOOOO";
                    row["ROXORZZOZO!!"] = "EOOOOOOOOOOOOOOOOOOOOO!";
                    row["MY"] = "My time to shine!";
                    dt1.Rows.Add(row);
                    row = dt1.NewRow();
                    row["Description"] = "MO!";
                    row["ROXORZZOZO!!"] = "EOOOO!";
                    row["MY"] = "My time to dine!";
                    dt1.Rows.Add(row);
                    row = dt1.NewRow();
                    row["Description"] = "WOOOO";
                    row["ROXORZZOZO!!"] = "EOOOOOOOOOOOOOOOOOOOOO!Hey Guys,Today(Thursday) I need to leave early at three to take care of some personal business.  Also, next Wednesday I’m going to be out of the office all day, taking a welding certification test.  I’ll also send out an OOO form.";
                    row["MY"] = "My time to be fine!";
                    dt1.Rows.Add(row);
    
                    dt2.Columns.Add(new DataColumn("Description", Type.GetType("System.String")));
                    dt2.Columns.Add(new DataColumn("ROXORZZOZO!!", Type.GetType("System.String")));
                    dt2.Columns.Add(new DataColumn("MY", Type.GetType("System.String")));
                    row = dt2.NewRow();
                    row["Description"] = "Description";
                    row["ROXORZZOZO!!"] = "ROXORZZOZO!!";
                    row["MY"] = "MY";
                    dt2.Rows.Add(row);
    
                    dt3.Columns.Add(new DataColumn("Row Numbers", Type.GetType("System.String")));
                    row = dt3.NewRow();
                    row["Row Numbers"] = "1";
                    dt3.Rows.Add(row);
                    row = dt3.NewRow();
                    row["Row Numbers"] = "2";
                    dt3.Rows.Add(row);
                    row = dt3.NewRow();
                    row["Row Numbers"] = "3";
                    dt3.Rows.Add(row);
                    GridView3.DataSource = new DataView(dt3);
                    GridView2.DataSource = new DataView(dt2);
                    GridView4.DataSource = new DataView(dt1);
                    GridView2.DataBind();
                    GridView3.DataBind();
                    GridView4.DataBind();
                    SynchGridviews(GridView2, GridView3, GridView4);
                }
            }
    
        protected void SynchGridviews(GridView top, GridView left, GridView body)
            {
                if (top.Width.Value > body.Width.Value)
                {
                    body.Width = top.Width;
                }
                else
                {
                    top.Width = body.Width;
                }
    
                if (left.Height.Value > body.Height.Value)
                {
                    body.Height = left.Height;
                }
                else
                {
                    left.Height = body.Height;
                }
                GridView2.DataBind();
                GridView3.DataBind();
                GridView4.DataBind();
            }
    
            protected void Button1_Click(object sender, EventArgs e)
            {
                SynchGridviews(GridView2, GridView3, GridView4);
            }
    
    1 回复  |  直到 14 年前
        1
  •  0
  •   Jacob Nelson    14 年前

    如果您的表紧贴其周围的div,那么您将无法重新调整列/行的大小,因此在表周围创建一个巨大的div,您就可以重新调整它的大小。