Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何从asp:面板获取文本属性_C#_Asp.net_Panel - Fatal编程技术网

C# 如何从asp:面板获取文本属性

C# 如何从asp:面板获取文本属性,c#,asp.net,panel,C#,Asp.net,Panel,可能是一个简单的问题,但我已经浏览了30分钟,仍然找不到解决方案 我有一个面板,它有一个属性text=“something”。但是panel类似乎没有getAttribute方法。。。我个人认为这很愚蠢 代码如下: foreach (Control c in clientGrid.Controls) { if (c.GetType().ToString().Equals("System.Web.UI.WebControls.Panel")) { /*Somethi

可能是一个简单的问题,但我已经浏览了30分钟,仍然找不到解决方案

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

代码如下:

foreach (Control c in clientGrid.Controls)
{
    if (c.GetType().ToString().Equals("System.Web.UI.WebControls.Panel"))
    {
        /*Something*/ textInsidePanel = ((Panel)c)./*Somthing*/              
    }
}
现在我已经尝试了
AttributeCollection text=((面板)c)

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

还有其他没用的东西

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

请帮忙


Alex你试过使用访问器吗

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

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

如果我没弄错您的问题,您可以使用下一个代码

asp部件

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

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

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

您是在脚本、c#中还是在aspx页面中设置属性?用户设置文本值。在回发时,我需要得到他们设置的值,这是不可能的。属性值不会在回发时传输。如果你需要保存一些东西,你可以使用隐藏输入你知道什么。。。我有时真是太迟钝了谢谢你对任何人的否决票。不过,告诉我为什么我的答案是错误的会很有帮助。用户不是在查找
InnerText
,而是在查找
元素上的属性。是这样吗?所以我可能误解了这个问题。谢谢你给我指明了正确的方向。
var panelContent = ((Panel)c).Controls[0] as LiteralControl;
var text = panelContent.Text;