2012-07-08 34 views
0

我在我的ASP.NET web应用程序表行中动态生成一个文本框和一个下拉列表,我想改变基于dropdownlist selectedindex使用javascript的文本框的值,但是我不'不知道如何将这些动态创建的控件传递给我的Javascript函数。将动态创建的ASP.NET控件传递给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); 

我通过的“本”,而不是我的组合框,它工作正常,但在我下面的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吗?

回答

1

在C#:

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

,试试这个:

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

看来,我的JavaScript函数没有被调用 – 2012-07-08 11:37:33

相关问题