解决panel里的gridview固定表头后表头超出panel的范围
解决方法:动态改变Panel的宽度
模板页:
<td valign="top" bgcolor="#FBFCFF" align="left" style="table-layout: fixed; height: 595px" id="tdmailContent">
<asp:Panel ID="Panel2" runat="server" Style="overflow: auto; width: 100%; height: 595px;"
onscroll="ResetDivPosition();">
<asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">
</asp:ContentPlaceHolder>
</asp:Panel>
</td>
分页数据:
<asp:Panel ID="Panel2" runat="server" Style="width: expression(tdmailContent.clientWidth-10);
overflow-x: scroll; display: block;">
<asp:GridView ID="grdFill" runat="server" AutoGenerateColumns="False" Width="180%"
RowStyle-HorizontalAlign="Center" RowStyle-VerticalAlign="Middle" OnRowDataBound="grdFill_RowDataBound" OnRowCreated="grdFill_RowCreated">
<RowStyle Wrap="False" />
<Columns>
<asp:TemplateField>
<HeaderStyle Width="30px" />
<ItemStyle HorizontalAlign="Center" Wrap="false" />
<ItemTemplate>
<%# Container.DataItemIndex + 1%>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemStyle HorizontalAlign="Center" />
<ItemTemplate>
<asp:Label ID="lblCost" runat="server" Text='<%#Eval("Cost") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemStyle HorizontalAlign="Center" />
<ItemTemplate>
<asp:DropDownList ID="ddlServiceLevel" runat="server" AppendDataBoundItems="True"
DataTextField="DValue" DataValueField="DKey"
AutoPostBack="false" Enabled="false">
<asp:ListItem></asp:ListItem>
</asp:DropDownList>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemStyle HorizontalAlign="Center" />
<ItemTemplate>
<asp:DropDownList ID="ddlNetworkZone" runat="server"
AppendDataBoundItems="True" DataTextField="DValue" DataValueField="DKey" AutoPostBack="false"
Enabled="false">
<asp:ListItem></asp:ListItem>
</asp:DropDownList>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemStyle HorizontalAlign="Center" />
<ItemTemplate>
<asp:Label ID="txtCPU" runat="server" Text='<%#Eval("CPU") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemStyle HorizontalAlign="Center" />
<ItemTemplate>
<asp:Label ID="lblRAM" runat="server" Text='<%#Eval("RAM") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemStyle HorizontalAlign="Center" />
<ItemTemplate>
<asp:DropDownList ID="ddlHDD" runat="server" AppendDataBoundItems="True"
DataTextField="DValue" DataValueField="DKey" AutoPostBack="false"
Enabled="false">
<asp:ListItem></asp:ListItem>
</asp:DropDownList>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemStyle HorizontalAlign="Center" />
<ItemTemplate>
<asp:DropDownList ID="ddlDiskC" runat="server"
AppendDataBoundItems="True" DataTextField="DValue" DataValueField="DKey" AutoPostBack="false"
Enabled="false">
<asp:ListItem></asp:ListItem>
</asp:DropDownList>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemStyle HorizontalAlign="Center" />
<ItemTemplate>
<asp:Label ID="lblDiskD" runat="server" Text='<%#Eval("DiskC") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemStyle HorizontalAlign="Center" />
<ItemTemplate>
<asp:Label ID="lblDiskE" runat="server" Text='<%#Eval("DiskE") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemStyle HorizontalAlign="Center" />
<ItemTemplate>
<asp:Label ID="lblHostName" runat="server" Text='<%#Eval("HostName") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemStyle HorizontalAlign="Center" />
<ItemTemplate>
<asp:DropDownList ID="ddlOSVersion" runat="server"
AppendDataBoundItems="True" DataTextField="DValue" DataValueField="DKey" AutoPostBack="false"
Enabled="false">
<asp:ListItem></asp:ListItem>
</asp:DropDownList>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemStyle HorizontalAlign="Center" />
<ItemTemplate>
<asp:DropDownList ID="ddlOSLanguage" runat="server"
AppendDataBoundItems="True" DataTextField="DValue" DataValueField="DKey" AutoPostBack="false"
Enabled="false">
<asp:ListItem></asp:ListItem>
</asp:DropDownList>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemStyle HorizontalAlign="Center" />
<ItemTemplate>
<asp:DropDownList ID="ddlWinComponent" runat="server"
AppendDataBoundItems="True" DataTextField="DValue" DataValueField="DKey" AutoPostBack="false"
Enabled="false">
<asp:ListItem></asp:ListItem>
</asp:DropDownList>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemStyle HorizontalAlign="Center" />
<ItemTemplate>
<asp:Label ID="lblOtherR" runat="server" Text='<%#Eval("OtherRequirements") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemStyle HorizontalAlign="Center" />
<ItemTemplate>
<asp:Label ID="lblServiceName" runat="server" Text='<%#Eval("ServiceName") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemStyle HorizontalAlign="Center" />
<ItemTemplate>
<asp:Label ID="lblServicePort" runat="server" Text='<%#Eval("ServicePort") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
</Columns>
<HeaderStyle Height="10px" />
</asp:GridView>
</asp:Panel>
protected void grdFill_RowCreated(object sender, GridViewRowEventArgs e)
{
switch (e.Row.RowType)
{
case DataControlRowType.Header:
TableCellCollection tcHeader = e.Row.Cells;
tcHeader.Clear();
//第一行表头
tcHeader.Add(new TableHeaderCell());
tcHeader[0].Attributes.Add("rowspan", "2");
tcHeader[0].Text = "Seq.";
tcHeader.Add(new TableHeaderCell());
tcHeader[1].Attributes.Add("rowspan", "2");
tcHeader[1].Attributes.Add("Width", "6%");
tcHeader[1].Text = "Cost";
tcHeader.Add(new TableHeaderCell());
tcHeader[2].Attributes.Add("rowspan", "2");
tcHeader[2].Text = "Service Level<span class='TitleRed'>*</span>";
tcHeader.Add(new TableHeaderCell());
tcHeader[3].Attributes.Add("rowspan", "2");
tcHeader[3].Text = "Network Zone<span class='TitleRed'>*</span>";
tcHeader.Add(new TableHeaderCell());
tcHeader[4].Attributes.Add("colspan", "3");
tcHeader[4].Text = "VM Configuration<span class='TitleRed'>*</span>";
tcHeader.Add(new TableHeaderCell());
tcHeader[5].Attributes.Add("colspan", "3");
tcHeader[5].Text = "HDD Partition";
tcHeader.Add(new TableHeaderCell());
tcHeader[6].Attributes.Add("rowspan", "2");
tcHeader[6].Text = "Hostname<span class='TitleRed'>*</span>";
tcHeader.Add(new TableHeaderCell());
tcHeader[7].Attributes.Add("rowspan", "2");
tcHeader[7].Text = "OS Version<span class='TitleRed'>*</span>";
tcHeader.Add(new TableHeaderCell());
tcHeader[8].Attributes.Add("rowspan", "2");
tcHeader[8].Text = "OS Language<span class='TitleRed'>*</span>";
tcHeader.Add(new TableHeaderCell());
tcHeader[9].Attributes.Add("rowspan", "2");
tcHeader[9].Text = "Windows Component<span class='TitleRed'>*</span>";
tcHeader.Add(new TableHeaderCell());
tcHeader[10].Attributes.Add("rowspan", "2");
tcHeader[10].Text = "Other Requirements";
tcHeader.Add(new TableHeaderCell());
tcHeader[11].Attributes.Add("colspan", "2");
tcHeader[11].Text = "DMZ Rule</th></tr><tr align=\"center\" style=\"color:Black;background-color:#C9D5FE;font-weight:bold;height:20px;\">";
//第二行表头
tcHeader.Add(new TableHeaderCell());
tcHeader[12].Text = "CPU";
tcHeader.Add(new TableHeaderCell());
tcHeader[13].Text = "RAM";
tcHeader.Add(new TableHeaderCell());
tcHeader[14].Text = "HDD";
tcHeader.Add(new TableHeaderCell());
tcHeader[15].Text = "Disk C(System)<span class='TitleRed'>*</span>";
tcHeader.Add(new TableHeaderCell());
tcHeader[16].Text = "Disk D(GB)<span class='TitleRed'>*</span>";
tcHeader.Add(new TableHeaderCell());
tcHeader[17].Text = "Disk E(GB)";
tcHeader.Add(new TableHeaderCell());
tcHeader[18].Text = "Service Name";
tcHeader.Add(new TableHeaderCell());
tcHeader[19].Text = "Service Port";
break;
}
}

浙公网安备 33010602011771号