高手救命:gridview编码模式下列超长超大,列是动态增加的

cawcang 2009-12-01 09:34:45
gridview编码模式下列超长超大,列是动态增加的,如果添加gv.Attributes.Add("style", "table-layout:fixed")的话,表格每列就等长了,怎么办呢,新手请教,谢谢!!
public void getdata()
{
OracleConnection conn = new OracleConnection(ConfigurationManager.ConnectionStrings["yhcz"].ConnectionString);
OracleCommand cmd = new OracleCommand();
cmd.Connection = conn;
cmd.CommandType = CommandType.Text;
conn.Open();
cmd.CommandText = "select wagetype from enterprisewage where year=" + Session["year"].ToString() + " and month=" + Session["month"].ToString() + " and eid='" + ddlb1.SelectedValue + "'";
Decimal wagetype = (Decimal)cmd.ExecuteScalar();
cmd.CommandText = "select to_char(dealstatus) from enterprisewage where year=" + Session["year"].ToString() + " and month=" + Session["month"].ToString() + " and eid='" + ddlb1.SelectedValue + "'";
String status = (String)cmd.ExecuteScalar();
cmd.CommandText = "select count(name) from wageitem where wagetype=" + wagetype.ToString() + " and setid=1 and year=" + Session["year"].ToString() + " and month=" + Session["month"].ToString() + " and id>0 order by dorder";
Decimal num = (Decimal)cmd.ExecuteScalar() + 2;
cmd.CommandText = "select name,dorder from wageitem where wagetype=" + wagetype.ToString() + " and setid=1 and year=" + Session["year"].ToString() + " and month=" + Session["month"].ToString() + " and id>0 order by dorder";
String sql = "select SETID,YEAR,MONTH,EID,CERTID,STATUS,NAME";
gv.Columns.Clear();
int i;
int cw = 250;
BoundField[] bfd = new BoundField[(int)num];
for (i = 0; i < num; i++)
{
bfd[i] = new BoundField();
}
bfd[0].HeaderText = "姓名";
bfd[0].DataField = "name";
bfd[0].ItemStyle.Width = 50;
bfd[0].ItemStyle.Font.Size = 11;
bfd[0].ReadOnly = true;
bfd[0].ItemStyle.HorizontalAlign = HorizontalAlign.Center;
bfd[1].HeaderText = "身份证号码";
bfd[1].DataField = "certid";
bfd[1].ReadOnly = true;
bfd[1].ItemStyle.Width = 100;
bfd[1].ItemStyle.Font.Size = 9;
bfd[0].ItemStyle.Wrap = false;
bfd[1].ItemStyle.Wrap = false;
gv.Columns.Add(bfd[1]);
gv.Columns.Add(bfd[0]);
OracleDataReader rd = cmd.ExecuteReader();
String a;
i = 2;
try
{
while (rd.Read())
{
a = '0' + rd["dorder"].ToString();
sql += ",A" + a.Substring(a.Length - 2, 2);
bfd[i].DataField = "A" + a.Substring(a.Length - 2, 2);
bfd[i].HeaderText = rd["name"].ToString();
//bfd[i].DataFormatString = "{0:F2}";
bfd[i].ItemStyle.HorizontalAlign = HorizontalAlign.Right;
bfd[i].ItemStyle.Wrap = false;
if (rd["name"].ToString().Length > 6)
{ bfd[i].ItemStyle.Width = 90; cw += 92; }
else
{
if (rd["name"].ToString().Length > 4)
{ bfd[i].ItemStyle.Width = 60; cw += 62; }
else
{ bfd[i].ItemStyle.Width = 50; cw += 52; }
}
gv.Columns.Add(bfd[i]);
i++;
}

}
catch (OracleException oe)
{
Response.Write(oe.Message.ToString());
}
finally
{
if (rd.IsClosed == false)
{
rd.Close();
}
}
if (cw > 980) { cw = 980; }
CommandField cf = new CommandField();
cf.HeaderText = "操作";
cf.ShowEditButton = true;
cf.ShowDeleteButton = true;
cf.ItemStyle.Width = 55;
cf.ItemStyle.Wrap = false;
cf.ItemStyle.Font.Size = 10;
gv.Columns.Add(cf);
gv.Width = cw;
gv.EditRowStyle.Width = cw;
OracleDataAdapter oda = new OracleDataAdapter(sql + " from wage where setid=1 and status=1 and eid='" + ddlb1.SelectedValue + "'", conn);
DataSet ds = new DataSet();
oda.Fill(ds, "wage");
gv.DataSource = ds.Tables["wage"];
gv.DataKeyNames = new string[] { "SETID", "YEAR", "MONTH", "EID", "CERTID", "STATUS" };
gv.DataBind();
conn.Close();
gv.HeaderStyle.Font.Size = 10;
Session["status"] = status;
Session["eid"] = ddlb1.SelectedValue;
Session["sql"] = sql;
count = 0;
firstbind = true;
for (i = 0; i < 30; i++)
{ mysum[i] = 0; }
}



前台源码:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>教师人员工资</title>
</head>
<body>
<form id="form1" runat="server">
<script type="text/javascript">
self.moveTo(0,0)
self.resizeTo(screen.availWidth,screen.availHeight)
</script>
<asp:DropDownList ID="ddlb1" runat="server" AutoPostBack="True" Width="231px"
onselectedindexchanged="ddlb1_SelectedIndexChanged">
</asp:DropDownList>
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
<asp:Label ID="Label2" runat="server"></asp:Label>
<asp:Button ID="Button1" runat="server" Text="本单位提交" />
<asp:Button ID="Button2" runat="server" Text="本单位退回" Visible="False" />
<br />.
<asp:GridView ID="gv" runat="server" CellPadding="4" ForeColor="#333333"
AutoGenerateColumns="False" EnableTheming="True" Width="346px"
Font-Size="11pt" onrowdatabound="gv_RowDataBound" ShowFooter="True"
onrowcancelingedit="gv_RowCancelingEdit" onrowdeleting="gv_RowDeleting"
onrowediting="gv_RowEditing" onrowupdating="gv_RowUpdating">
<FooterStyle BackColor="#1C5E55" Font-Bold="False" ForeColor="White"
Font-Size="8pt" HorizontalAlign="Right" Wrap="False" />
<RowStyle BackColor="#E3EAEB" Wrap="False" />
<PagerStyle BackColor="#666666" ForeColor="White" HorizontalAlign="Center" />
<SelectedRowStyle BackColor="#C5BBAF" Font-Bold="True" ForeColor="#333333" />
<HeaderStyle BackColor="#1C5E55" Font-Bold="True" ForeColor="White" CssClass="Freezing"/>
<EditRowStyle BackColor="#7C6F57" Wrap="False" Font-Size="11pt" Height="10px"
Width="20px" />
<AlternatingRowStyle BackColor="White" />
</asp:GridView>
</form>
</body>
</html>
...全文
75 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
cawcang 2009-12-01
  • 打赏
  • 举报
回复
自己顶一下
cawcang 2009-12-01
  • 打赏
  • 举报
回复
身份证号码是很长的
cawcang 2009-12-01
  • 打赏
  • 举报
回复
不是等长,就没有办法吗
wuyq11 2009-12-01
  • 打赏
  • 举报
回复
根据字段长度截取字符串,设置每列为等长

62,266

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧