动态加载的同一个Label的同一行字体显示不同的颜色

来源:互联网 发布:如何查询淘宝信用 编辑:程序博客网 时间:2024/05/16 14:27

ASP.NET动态生成Table时,为了使得动态加载的同一个Label的同一行字体显示不同的颜色, 显示不同颜色的原因是:行号前面有红*表示修改改过的行, 没有红*表示没有修改的行;

比如:Label值显示*123, 表示第123行是修改过的,显示123表示第123行没有修改过;

Table在后台动态生成Label 的时候,该列表示行号,

HtmlTableCell tableCell = new HtmlTableCell();

System.Web.UI.WebControls.Labellabel = new System.Web.UI.WebControls.Label();

label.ID = ID;

 

label.Width = Unit.Parse("30px");

label.Style.Add("tex-align","center");

label.Text = "<span id = Span1" + ID +"style='color:red'></span>"+"<span id=Span2" + ID +">"+ Text +"</span>";

 

tableCell.Style.Add("text-align","center");

tableCell.Controls.Add(label);

 

同时Table在后台加载其他的列,这些列的单元格空间可以是TextBox, DropDownList等等,这些列在前台是可以编辑的,我们可以在后台动态加载这些列的时候给他们加上前台响应事件,例如:

HtmlTableCell tableCell = new HtmlTableCell();

System.Web.UI.WebControls.TextBoxtextbox = new System.Web.UI.WebControls.TextBox();

textbox.ID = ID;

textbox.Text = Text;

 

textbox.Width = Unit.Parse(width);

textbox.Height = Unit.Parse("26px");

textbox.Style.Add("font-family","Segoe UI");

textbox.Attributes.Add("onchange","textChange(this)");

 

tableCell.Style.Add("text-align","center");

tableCell.Controls.Add(textbox);

 

 

在前台, TextBox控件内容修改之后,触发了onchange事件,执行了前台函数textChange,在这个函数中修改Span1的字体颜色, 代码如下:

 function OnDirtyFlag(control) {

 

       //注意ContorlTextBox类型的控件我们根据TextBox类型控件的事先制定好的ID来解析出行号,获得相应的Span1的ID

      var CID =control.id.toString();

      var Span1ID = "Span1" + CID.SubString(offset, len);//offset, len根据需要自己设定

      varspanControl = document.getElementById(Span1ID);

       spanControl.innerHTML= "<font color=red>*</font>";

 };

效果如下图:

                        

好了,这样就可以动态的在同一个Label的同一行显示不同的颜色的字体。

原创粉丝点击