【发布时间】:2014-01-24 23:04:17
【问题描述】:
我正在尝试动态生成一个控件,然后更改另一个控件。例如,我有一个按钮和一个标签,我想使用 AJAX/JS/等更改标签的文本,而不需要发布/获取查询。所以我正在编写这样的代码:
foreach (var pair in FailedMonitorings)
{
var server = (ServerEnum)pair.Key;
var tabPanel = new TabPanel { HeaderText = server.GetDescription() };
var updatePanel = new UpdatePanel();
var upChilds = updatePanel.ContentTemplateContainer.Controls;
var label = new Label { Text = "Hello from UP-" + tabPanel.HeaderText, ID = "lbl" + tabPanel.HeaderText};
upChilds.Add(label);
const string command = @"var ctrl = $.find(""{0}""); alert(ctrl.id); return false;";
var button = new Button {Text = "Button"};
upChilds.Add(button);
tabPanel.Controls.Add(updatePanel);
tbcErrors.Tabs.Add(tabPanel);
button.OnClientClick = string.Format(command, label.ClientID);
}
这里生成的html:
首先,我只想创建一个带有控制 ID 的消息框,但即使是这个简单的代码也不起作用。问题是:为什么?又该如何解决呢?
添加:ctrl 不为空
当命令是
const string command = @"var ctrl = $.find(""{0}""); alert(((ctrl != null).toString() + ' ') + ctrl.id); return false;";
结果是true undefined
【问题讨论】:
-
好吧,您至少有一个问题:
@"var ctrl = $.find(""{0}""); alert(ctrl.id); return false;";您希望“0”是什么?您需要格式化该字符串:msdn.microsoft.com/en-us/library/… -
如果你说: ctrl is not null ... 请告诉我们 ctrl 实际上是什么。
-
我怀疑 ctrl 是一个空数组
-
@WolleVanillebärLutz,你是对的,输入 if "array of native"
标签: c# javascript jquery asp.net ajax