可能是一个简单的问题,但我现在已经浏览了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#代码具有值!!
请帮助!
亚历
答案 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;