将动态创建的ASP.NET控件传递给Javascript

passing dynamically created ASP.NET controls to Javascript

本文关键字:Javascript 控件 NET 动态 创建 ASP      更新时间:2023-09-26

我正在ASP.NET web应用程序表行中动态生成一个文本框和一个下拉列表,我想使用javascript根据在索引中选择的下拉列表更改文本框的值,但我不知道如何将这些动态创建的控件传给我的javascript函数。

                    TextBox t = new TextBox();
                tc.Controls.Add(t);
                tr.Cells.Add(tc);
                tc = new TableCell();
                DropDownList ddl = new DropDownList();
                ddl.Attributes.Add("onChange", "return OnFoodChange(this," + t + ");");
                tc.Controls.Add(ddl);

我传递"this"而不是我的组合框,它运行良好,但在我的以下javascript函数中没有检测到文本框:

               function OnFoodChange(myCmb,myTxt) {
try{
               var q = document.getElementById('<%= HFFoodPrice.ClientID %>').value.toString();
               var q2 = q.split(';');
               alert(myCmb.selectedIndex.toString());
               alert(document.getElementById(myTxt.value));
               for (var j = 0; j < q2.length; j++) {
                   if (q2[j] != '') {
                       var q3 = q2[j].split(',');
                   {
                   }
               }
           }
           }
           catch(err)
           {
           alert(err.message);
           }
       }

将动态创建的控件传递给javascript函数的正确方法是什么?我应该在我的代码后台设置控件ID吗?

在C#中:

ddl.Attributes.Add("onChange", "return OnFoodChange(this," + t.ClientID + ");");

在Javascript中,请尝试以下操作:

alert(document.getElementById(myTxt).value);