亲,求救啊~~~HTML元素控件一直找不到

klo6666 2012-05-21 01:03:36
亲,我在ASPX里面用下面的方法写了个动态显示下拉框。。但是后面无论是用后台的control还是htmlselect调用的时候怎么

都找不到,我也用过JS的document.getElementById找,但是还是找不到。。。。。。好像没有这些下拉框似得,但是源代码上面是有相关的信息的。弄了好些都要疯了,求各位亲帮忙~~~不胜感激~

#region 显示模板
public void ShowBox()
{
xtr = new XmlTextReader(xmlPath);
try
{
System.Web.HttpContext.Current.Response.Write("<script src='JS2.js'></script>");
while (xtr.Read())
{
//保存cookies
int y = num2;
[align=left]

HttpCookie Cookie = new HttpCookie("id");
Cookie.Value = y.ToString();
System.Web.HttpContext.Current.Response.Cookies.Add(Cookie);

System.Web.HttpContext.Current.Response.Write("<form id=\"form2\"><table border=3 align='center'><tr><td>编号</td><td>节点深度</td><td>节点名字</td><td>节点信息</td><td>节点路径</td><td>模板匹配</td></tr>");
for (int x = 0; x < y; x++)
{
gid = x.ToString();
//System.Web.HttpContext.Current.Response.Write( rootmes[x].ToString() );
System.Web.HttpContext.Current.Response.Write("<tr><td>" + x.ToString() + "</td>");
System.Web.HttpContext.Current.Response.Write("<td>" + lev[x].ToString() + "</td>");
System.Web.HttpContext.Current.Response.Write("<td>" + levmes[x].ToString() + "</td>");

System.Web.HttpContext.Current.Response.Write("<td>" + rootmes[x].ToString() + "</td>");
System.Web.HttpContext.Current.Response.Write("<td>" + path[x].ToString() + "</td><td>");


//显示匹配
System.Web.HttpContext.Current.Response.Write("<select id='typeted001" + gid + "' runat=\"server\" onchange=\"ChangeSelect(this.value,'typeted002" + gid + "','',typeted)\" style=\"width:100px\"></select>");

System.Web.HttpContext.Current.Response.Write("<select id='typeted002" + gid + "' runat=\"server\" onchange=\"ChangeSelect(this.value,'typeted003" + gid + "','',typeted)\" style=\"width:100px\"></select>");

System.Web.HttpContext.Current.Response.Write("<select id='typeted003" + gid + "' runat=\"server\" onchange=\"ChangeSelect(this.value,'typeted004" + gid + "','',typeted)\" style=\"width:100px\"></select>");

System.Web.HttpContext.Current.Response.Write("<select id='typeted004" + gid + "' runat=\"server\" onchange=\"\" style=\"width:100px\"></select>");

System.Web.HttpContext.Current.Response.Write("<script language=\"JavaScript\" type=\"text/javascript\"> ChangeSelect('0', 'typeted001" + gid + "', '', typeted) </script> ");

System.Web.HttpContext.Current.Response.Write("</td></tr>");
}
System.Web.HttpContext.Current.Response.Write("</table></form>");
System.Web.HttpContext.Current.Response.Write("<input type=\"button\" value=\"fenxi\" ></input>");
break;
}

}
catch (XmlException xe)
{
throw new XmlException(ERRMSG + xe.Message);
}
finally
{

xtr.Close();
}
}
#endregion[/align]
相关的JS文件代码
function ChangeSelect(ParentValue, NextId, NextSelectedValue, ArrObj, DefaultStr) {
StrObj = eval(document.getElementById(NextId));
StrObj.length = 0;
//判断它是二级数据源,还是三级
if (ArrObj.length > 0) {
if (ArrObj[0].length == 2)
{ ArrNum = 0; }
else
{ ArrNum = 2; }
}
//显示所有列表
for (i = 0; i < ArrObj.length; i++) {
if (i == 0) {
if (DefaultStr == undefined) DefaultStr = "==请选择==";
StrObj.options[StrObj.length] = new Option(DefaultStr, "");
}
if (ArrObj[i][1] == ParentValue) {
StrObj.options[StrObj.length] = new Option(ArrObj[i][0], ArrObj[i][ArrNum]);
}
}
//选中列表内某一项
for (i = 0; i < StrObj.length; i++) {
if (StrObj.options[i].value == NextSelectedValue) {
StrObj.options[i].selected = true;
}
}
//激发下一级的onchange事件以实现多级级联
StrObj.onchange();
}


//省市三维数组数据源
typeted = [
["CategoryName", "ParentId", "Id"],
["文字", "0", "01"],
["图像", "0", "02"],
["音乐", "0", "03"],
["<head>", "01", "001"],
["<font>", "01", "002"],
["<form>", "01", "003"],
["<img>", "02", "010"],
["<embed>", "03", "100"],
["<title>", "001", "0011"],
["<table>", "003", "0031"],
["<input>", "003", "0032"],
["<select>", "003", "0033"],
["<textarea>", "003", "0034"],
["start", "0031", "00311"],
["continue", "0031", "00312"],
["end", "0031", "00313"]
];


...全文
175 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
刘津宇教编程 2012-05-22
  • 打赏
  • 举报
回复
catch (XmlException xe)

把你捕捉异常的地方 范围放大一些 看看是否抛出异常

catch (Exception xe)
孟子E章 2012-05-22
  • 打赏
  • 举报
回复
这跟数据库没关系
你需要做的是看浏览器的源代码中,生成的html是否都在一个<form>里面,注意必须是一个,form是不能嵌套的
再坚持<select是否有name属性,这2点具备,就没问题的
klo6666 2012-05-22
  • 打赏
  • 举报
回复
改了,整个过程还是没有异常
klo6666 2012-05-21
  • 打赏
  • 举报
回复
还是不行,显示没有这个元素。还有我的这个程序是没有连数据库的。。。。
孟子E章 2012-05-21
  • 打赏
  • 举报
回复
你写错啦
<select name='typeted0010'

去掉多余的"
klo6666 2012-05-21
  • 打赏
  • 举报
回复
JS我是用下面方法测试的
var s1
function save(id) {
s1 = document.getElementById(id);

}
只是连S1都不知道是什么类型的对象。。。。
klo6666 2012-05-21
  • 打赏
  • 举报
回复
根据2楼我做了以下修改
1、去掉runat=\"server\"
2、添加了name
System.Web.HttpContext.Current.Response.Write("<select name='typeted0010"' id='typeted001" + gid + "'onchange=\"ChangeSelect(this.value,'typeted002" + gid + "','',typeted)\" style=\"width:100px\"></select>");
3、在后台的一个button的事件里,使用Request["typeted0010"]获取;
但是还是不行。。。显示Request["typeted0010"]是错误的并且Request["typeted0010"].后面也不是select相关的选项
  • 打赏
  • 举报
回复
你这个页面使用了母版页么?
还有你确定了控件有runat="server"么
js中获取asp.net控件方法正确么?
var ddl=document.getElementById("<%=ddl.ClientID%>");

...
孟子E章 2012-05-21
  • 打赏
  • 举报
回复
代码输出不能写runat=\"server\"

你可以
<select name=x

后台
Request["x"]得到

62,267

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧