根据字典数据画表格

wang520d 2008-12-03 04:05:39
文本控件的名称 标签控件的内容
-------------------------------------------------- ------------------------------------------------------------------------------------------------------------------------------------------------------
OECNumber EC号
OLogisticsState 物流状态
OCancelState 取消状态
OSendCompany 物流公司
OID 订单编号

根据上面的数据动态创建6列的表格
如下表格:表格控件中标签控件命名规则
lbl_+文本控件的名称内容 文本控件命名规则input_+文本控件的名称内容

<asp:Table ID="Table1" runat="server">
<asp:TableRow runat="server">
<asp:TableCell runat="server">
<asp:Label ID="lbl_OECNumber" runat="server" Text="EC号"></asp:Label></asp:TableCell>
<asp:TableCell runat="server">
<asp:TextBox ID="input_OECNumber" runat="server"></asp:TextBox></asp:TableCell>
<asp:TableCell ID="TableCell1" runat="server">
<asp:Label ID="Label4" runat="server" Text="Label">物流状态</asp:Label></asp:TableCell>
<asp:TableCell ID="TableCell2" runat="server" ColumnSpan="4">
<asp:TextBox ID="input_OLogisticsState" runat="server"></asp:TextBox></asp:TableCell>
<asp:TableCell runat="server">
<asp:Label ID="lbl_OCancelState" runat="server" Text="取消状态"></asp:Label></asp:TableCell>
<asp:TableCell runat="server">
<asp:TextBox ID="input_OCancelState" runat="server"></asp:TextBox></asp:TableCell>
</asp:TableRow>
<asp:TableRow runat="server">
<asp:TableCell ID="TableCell3" runat="server">
<asp:Label ID="lbl_OSendCompany" runat="server" Text="物流公司"></asp:Label></asp:TableCell>
<asp:TableCell ID="TableCell4" runat="server">
<asp:TextBox ID="input_OSendCompany" runat="server"></asp:TextBox></asp:TableCell>
<asp:TableCell ID="TableCell5" runat="server">
<asp:Label ID="lbl_OID" runat="server" Text="订单编号"></asp:Label></asp:TableCell>
<asp:TableCell ID="TableCell6" runat="server">
<asp:TextBox ID="input_OID" runat="server"></asp:TextBox></asp:TableCell>
</asp:TableRow>
</asp:Table>
...全文
199 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
wang520d 2008-12-04
  • 打赏
  • 举报
回复

public DataTable GetDataTable()
{
THS.Logic.PublicLogic.PublicLogic objPublicLogic = new THS.Logic.PublicLogic.PublicLogic("datadict", "SerialID");
DataTable dt = new DataTable();
dt = objPublicLogic.getQueryDS("select * from datadict where 1=1 and tablename='user' and colSearch='yes' order by colnull,conSort asc").Tables[0];
return dt;

}




public void GetTable()
{

DataTable dt = new DataTable();
dt = GetDataTable();
TableRow tr = new TableRow();
string lblItemName="";
string lblItemContent = "";
string txtItemName="";
int txtItemLen = 0;
int upIValue = -1000;
bool upIsNewRow = false;
int upLen = -1;
int nextItemLen = -1;
for (int i = 0; i < dt.Rows.Count; i++)
{


lblItemContent = dt.Rows[i]["ColNote"].ToString().ToLower();
lblItemName = "lbl_" + dt.Rows[i]["ColName"].ToString().ToLower();
txtItemName = "input_" + dt.Rows[i]["ColName"].ToString().ToLower(); //dr["ColName"].ToString();
txtItemLen = Convert.ToInt32(dt.Rows[i]["ColLen"].ToString().ToLower());
if (i != dt.Rows.Count - 1)
{
nextItemLen = Convert.ToInt32(dt.Rows[i + 1]["ColLen"].ToString().ToLower());
}


if (i % 4 == 0)
{
tr = new TableRow();
}
//if (txtItemLen > 100 || i % 4 == 0)
//{
// //this.Table1.Rows.Add(tr);
// tr = new TableRow();
// upIValue = i;
// upIsNewRow = true;
//}

//if (upIValue == i - 1 && upIsNewRow == true)
//{
// tr = new TableRow();
// upIValue = i;
// upIsNewRow = true;
//}
//else
//{
//if (i % 4 == 0)
//{
// tr = new TableRow();
//}
//}

TableCell tcItemLetter = new TableCell();
TableCell tcItemContent = new TableCell();
if (txtItemLen > 100)
{
tcItemContent.ColumnSpan = 7;
}
tcItemLetter.CssClass = "tdbg5";
tcItemContent.CssClass = "tdbg6";
//tcItemLetter.HorizontalAlign = HorizontalAlign.Center;
//tcItemLetter.Width = Unit.Percentage(10);
////tcItemLetter.BackColor = System.Drawing.Color.Beige;
//tcItemContent.HorizontalAlign = HorizontalAlign.Left;
Label lblItemLetter = new Label();
lblItemLetter.ID = lblItemName;
lblItemLetter.Text = lblItemContent;
tcItemLetter.Controls.Add(lblItemLetter);
TextBox txtItemContent = new TextBox();
if (txtItemLen > 100)
{
txtItemContent.Width = Unit.Percentage(99);
txtItemContent.Height = Unit.Parse("84px");// Unit.Percentage(99);
}
txtItemContent.ID = txtItemName;//"txtItemContent" + (i.ToString());
tcItemContent.Controls.Add(txtItemContent);
tr.Cells.Add(tcItemLetter);
tr.Cells.Add(tcItemContent);



if (txtItemLen > 100)
{//加行
this.Table1.Rows.Add(tr);
if (i != dt.Rows.Count - 1)
{//不等于最后一行
if ((i + 1) % 4 == 0 || nextItemLen > 100)
{//下次取摸为0 或者 下次长度大于100
tr = new TableRow();
upIValue = i;
upIsNewRow = true;
upLen = txtItemLen;
}

if (upIValue == i - 1 && upIsNewRow == true)
{
tr = new TableRow();
}
}

}

if (i % 4 == 0)
{
this.Table1.Rows.Add(tr);
//if (i != dt.Rows.Count - 1)
//{//不等于最后一行

// if (i != 0)
// {
// tr = new TableRow();
// upIValue = i;
// upIsNewRow = true;
// upLen = txtItemLen;
// }
//}


}

if (i == dt.Rows.Count - 1)
{
this.Table1.Rows.Add(tr);
}




}

}

===不是我不会动态生成控件。。是生成这个表格控件的时候有个算法。。
就是当某个 字段的长度大于100时 我就要让这个字段生成单独一行
可是在创建新行的判断上 有点弄不明白了 生成6列 %4==0也要创建新行。
anncesky 2008-12-03
  • 打赏
  • 举报
回复
动态生成Table是基础的东西

以前就是拿这东西模拟DataGrid
MicroDeviser 2008-12-03
  • 打赏
  • 举报
回复
楼主也5个三角了,这都不会写
wang520d 2008-12-03
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 maco_wang 的回复:]
画表格?我感觉你要动态生成控件?
[/Quote]
恩 我描述有问题
就是动态生成控件。。。
叶子 2008-12-03
  • 打赏
  • 举报
回复
画表格?我感觉你要动态生成控件?
wang520d 2008-12-03
  • 打赏
  • 举报
回复
不知道我描述清楚了没有。。
我的意思就是根据上面的数据去画对应表格。。而表格的1、3、5单元格中分别生成Label Label命名规则上面已经给出(就是用lbl_+数据第一列的内容)2、4、6单元格中生成文本框命名规则同上 用input_+数据第一列的内容

62,242

社区成员

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

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

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

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