C# 如何从asp:面板获取文本属性
可能是一个简单的问题,但我已经浏览了30分钟,仍然找不到解决方案 我有一个面板,它有一个属性text=“something”。但是panel类似乎没有getAttribute方法。。。我个人认为这很愚蠢 代码如下: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
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;