如何从asp:panel获取text属性

时间:2011-05-24 16:30:03

标签: c# asp.net panel

可能是一个简单的问题,但我现在已经浏览了30分钟,而且仍然无法找到解决方案!

我有一个面板,它有一个属性text =“something”。但是面板类似乎没有getAttribute方法......我个人认为这是愚蠢的!

代码如下:

foreach (Control c in clientGrid.Controls)
{
    if (c.GetType().ToString().Equals("System.Web.UI.WebControls.Panel"))
    {
        /*Something*/ textInsidePanel = ((Panel)c)./*Somthing*/              
    }
}

现在我尝试了AttributeCollection text = ((Panel)c).Attributes;

string text = ((Panel)c).Attributes.toString();

和其他无用的东西......

这应该很简单!当我检查chrome上的元素时,我可以看到面板,(以及div),我可以在那里看到text属性。我可以看到它的价值!但我希望我的c#代码具有值!!

请帮助!

亚历

3 个答案:

答案 0 :(得分:4)

如果我问你的话 - 你可以使用下一个代码

asp part

<asp:Panel runat="server" ID="pnl" Text="hello world"></asp:Panel>

c#part -

string s = pnl.Attributes["Text"];

答案 1 :(得分:2)

您是否尝试过使用访问器?:

string val = YourPanel.Attributes["Text"];
//                                   ^ that's your attribute name

这应该得到属性的值但是我很确定你正在做的事情是不可能的,因为在回发之间不存在属性值(至少在通过客户端脚本设置时不会)。为此,您应该使用隐藏的输入或其他表单元素。

答案 2 :(得分:0)

Panel控件本身没有text属性。但是如果您将内部文本作为LiteralControl访问它将起作用:

var panelContent = ((Panel)c).Controls[0] as LiteralControl;
var text = panelContent.Text;