小编典典

如何验证动态创建的控件?

ajax

我有一个asp.net页面,它的一些控件是动态创建的,这些控件是下列之一;文本框,日历或下拉列表。

在某些情况下,应基于从db读取的标志来验证这些控件?

有什么方法可以验证动态创建的控件吗?


阅读 207

收藏
2020-07-26

共1个答案

小编典典

我找到了解决该问题的方法。我在此页面上遇到的主要问题之一是启用了Ajax,因此我需要验证动态创建的控件。

我的解决方案及其工作正常,在创建控件时,我向其添加了输入属性以将其标记为必需,而将另一个属性标记为它是要验证的字段?

使用Javascript,我会遍历所有带有属性“动态控制”的输入标签,并基于“验证属性”来验证它与否。简单吧?

示例代码:在创建控件时,将其标记如下

txtBox.Attributes.Add("Type", "T"); // Type of control.
txtBox.Attributes.Add("IsKeyField", "Y"); // Is dynamically created field.
txtBox.Attributes.Add("IsMandatory", "Y");  // Is mandatory or not?

JavaScript代码

            var inputControls = document.getElementsByTagName("input");
            for(var i=0 ; i<inputControls.length ; i++)
            {
                if ( inputControls[i].getAttribute("IsKeyField") == "Y" )                                        
                {
                    if (inputControls[i].getAttribute("Type") == "T" || (inputControls[i].getAttribute("Type") == "C"))
                    {
                        if(inputControls[i].getAttribute("IsMandatory") == "Y")
                        {
                            if(inputControls[i].value == "")
                            {
                                errorMsg += "\n" + inputControls[i].getAttribute("KeyField_Name") + " is required.";
                                isValidated = false;
                            }                            
                        }                         
                    }
                }
            }

当然,您可以在单击所需按钮的同时调用该代码。

btnUpload.Attributes.Add("onClick", "javascript:if(!ValidateMandatoryFields()) return false;");
2020-07-26