我在ASP.NET web app表行中动态生成一个文本框和一个下拉列表,我想根据dropdownlist selectedindex使用javascript更改textbox的值,但我不知道如何传递这些动态创建的控件我的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吗?
答案 0 :(得分:1)
在C#中:
ddl.Attributes.Add("onChange", "return OnFoodChange(this," + t.ClientID + ");");
在Javascript中,试试这个:
alert(document.getElementById(myTxt).value);