当前位置:编程学习 > C#/ASP.NET >>

asp.net 如何将string型转换为Label型并且可以设置服务器控件属性

是这样的,
页面上有很多个Label控件,控件的样式是可以调整的,我可以按上,下,左,右来改变控件的位置和字体之类
我把控件的信息保存到了注册表里,现在可以正确保存,也可以正确读取

问题描述:
我这里出现的问题是,每个控件的ID不同,我把ID也保存到了注册表,我想读取出来的ID,调用Style设置坐标值,虽然值可以正确读取,Response也可以显示出值,但是在页面上却没有生效!还是按照页面的静态的坐标来显示的

前台代码:(举例,用两个Label控件)
<asp:Label ID = "lblDSRText" Text = "当事人" runat = "server" name="label" Style="left: 341px; position: absolute;top:223px" ></asp:Label>

<asp:Label ID = "lblDSRXMText" Text = "当事人姓名" runat = "server" name="label" Style="left: 580px; position: absolute;top: 223px" ></asp:Label>


后台代码:
string writeKey = "lblDSRText";

Label writeKey_Label = new Label();

writeKey_Label.ID = writeKey;

writeKey_Label.Style["Style"] = "left: 341px; position: absolute;top:193px";

Response.Write(writeKey_Label.Style["Style"]);


后台代码可以输出这个值来,前台的坐标却没有发生变化

但是后台直接写,lblDSRText.Style["Style"] = "left: 341px; position: absolute;top:193px";却是正常的,前台的控件坐标可以发生变化

请问,这个问题如何才能得到解决呢?

分不够我可以再加!! --------------------编程问答-------------------- UP --------------------编程问答-------------------- 看看能不能通过lable得 autopostback属性来处理 --------------------编程问答-------------------- 没有看到从注册表取值的代码。 --------------------编程问答-------------------- writeKey_Label.Style["Style"] = "left: 341px; position: absolute;top:193px";

把这个名称改一下别用Html的关键字试试 --------------------编程问答-------------------- 结贴率啊。。。。 --------------------编程问答-------------------- 结帖率:0.00% --------------------编程问答-------------------- 要不你看一下生成的代码(就是套页面后的)的标点符号是否有错 --------------------编程问答-------------------- 没有看到从注册表取值的代码。
 "left: 341px; position: absolute;top:193px";

如果是注册表里的就是把341px和193px那里改成动态,显示从注册表里读出来的值即可
我直接用静态的代替了,效果一样,不影响问题

-------------------------------------------------------------
writeKey_Label.Style["Style"] = "left: 341px; position: absolute;top:193px"; 

把这个名称改一下别用Html的关键字试试

改过,top,left之类,都没用
--------------------------------------------------------------
要不你看一下生成的代码(就是套页面后的)的标点符号是否有错

writeKey_Label.Style["Style"] = "left: 341px; position: absolute;top:193px";

上边这句不行,而下边这句就行,writeKey_Label的值为“lblDSRText”

lblDSRText.Style["Style"] = "left: 341px; position: absolute;top:193px";
-----------------------------------------------------------------

谁知道做我加100分! --------------------编程问答--------------------
string writeKey = "lblDSRText";

Label writeKey_Label = new Label();

writeKey_Label.ID = writeKey;

writeKey_Label.Style["Style"] = "left: 341px; position: absolute;top:193px";

this.Controls.Add(writeKey_Label);

试试 --------------------编程问答-------------------- up --------------------编程问答-------------------- 帮顶 --------------------编程问答--------------------   Label l = (Label)this.FindControl("lblDSRText");
            if (l != null)
            {
                l.Style["color"] = "red";
            } --------------------编程问答--------------------

Label writeKey_Label = this.FindControl("lblDSRText") as Label;
if(writeKey_Label != null)
{
    writeKey_Label.Style["left"] = "341px";
    writeKey_Label.Style["position"] = "absolute";
    writeKey_Label.Style["top"] = "193px";
}
--------------------编程问答-------------------- 原来慕白兄已经抢先一步 了 --------------------编程问答-------------------- hehe. --------------------编程问答-------------------- 我还没看明白你到底想咋个样咧,没看明白你说什么?不知道你想实现是效果,现在问题又是什么? --------------------编程问答-------------------- Response.Write(writeKey_Label.Style["Style"]);??? --------------------编程问答--------------------
引用 13 楼 ojlovecd 的回复:
C# codeLabel writeKey_Label=this.FindControl("lblDSRText")asLabel;if(writeKey_Label!=null)
{
    writeKey_Label.Style["left"]="341px";
    writeKey_Label.Style["position"]="absolute";
    writeKey_Label.Style["top"]="193px";
}

看来应该改改,服务器控件应该是在form里的:

Label writeKey_Label = this.form1.FindControl("lblDSRText") as Label;//查找form1中的ID为lblDSRText的Label
if(writeKey_Label!=null)
{
    writeKey_Label.Style["left"]="341px";
    writeKey_Label.Style["position"]="absolute";
    writeKey_Label.Style["top"]="193px";
}
--------------------编程问答-------------------- string writeKey = "lblDSRText";

Label writeKey_Label = (Label)Page.FindControl(writeKey); //  new Label(); 

//writeKey_Label.ID = writeKey; // 大哥啊,你以为,给了一样的ID就是同一个 Label ?

writeKey_Label.Style["Style"] = "left: 341px; position: absolute;top:193px";

Response.Write(writeKey_Label.Style["Style"]);
--------------------编程问答-------------------- this.form1.FindControl("lblDSRText") as Label;
这样找不到form1

this.FindControl("lblDSRText") as Label;
这样值为null


我这个页面是继承的母版页,应该是母版页的的问题吧?

<%@ Page Language="C#" MasterPageFile="~/public/MenuIndexContainerHeader.master" AutoEventWireup="true" CodeFile="CFJDS.aspx.cs" Inherits="private_dzjc_DYSZ_CFJDS" Title="Untitled Page" %>
--------------------编程问答--------------------
引用 20 楼 csccssdn 的回复:
this.form1.FindControl("lblDSRText") as Label;
这样找不到form1

this.FindControl("lblDSRText") as Label;
这样值为null


我这个页面是继承的母版页,应该是母版页的的问题吧?

C# code<%@ Page Language="C#"MasterPageFile="~/public/MenuIndexContainerHeader.master"AutoEventWireup="true"CodeFile="CFJDS.aspx.cs"Inherits="private_dzjc_DYSZ_CFJDS"Title="Untitled Page"%>

你首先应该明确这个Label在什么地方,也就是它的上级控件是什么?
如果你不知道什么是它的上级控件,就看看它被包含在哪个runat="server"的控件里 --------------------编程问答-------------------- 看到复杂的控件就头晕~~~
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,