在ASPxPageControl中,我添加了一些动态创建的标签和文本框。最初,文本框的Text属性为空,直到最终用户根据必要信息填充文本框。
下一步是按下保存按钮,当发生这种情况时,在button_ClickEvent函数中,我正确地获取所有控件,但即使用户填写了文本框,text属性也始终为空
我的代码中遗漏了什么?
这是我的代码:
PropertyInfo cntrlProperty;
foreach (System.Web.UI.Control cntrl in pControl.TabPages[1].Controls)
{
Type ControlType = testAssembly.GetType(typeof(ASPxTextBox));
if (!cntrl.GetType().Equals(typeof(ASPxLabel)) && cntrl.GetType().Equals(ControlType))
{
cntrlProperty = cntrl.GetType().GetProperty("Text");
var value = cntrlProperty.GetValue(cntrl);
VALUES += String.Format("'{0}'" + ",", value);
}
}
此外,我尝试在动态创建控件时设置默认字符串,这很好,因为在呈现控件时,此默认字符串位于文本框中。
让我们说默认字符串=“只是一个字符串”;
直到我的代码中的变量 值=只是一个字符串 这没关系。
然后我做的是将一些文本追加(我在文本框中输入“)到运行时中的”默认字符串“ 现在默认字符串看起来像
默认字符串=“只是文本框中的字符串”
然后我按下保存按钮,结果变量 值 它仍然存储 值=只是一个字符串 < /强>
知道为什么会发生这种情况?
答案 0 :(得分:0)
考虑一下:
foreach (System.Web.UI.Control cntrl in pControl.TabPages[1].Controls)
{
if (cntrl is ASPxTextBox)
{
VALUES += string.Format("'{0}' + ",", (cntrl as ASPxTextBox).Text);
}
}
如果执行此操作时仍然没有获取text属性值,则控件的内部可能存在问题,并且当页面通过LoadPostData阶段时,不会在浏览器中捕获输入的文本。
另外需要注意的是,在使用ASP.NET AJAX添加控件时,要使此LoadPostData成功,您需要在创建它们之后在页面上为每个回发加载此控件才能获得值回来了。
希望这有帮助。