我用asp.net (1.1)动态生成静态页面,就是读模板,然后替换字符串
生成的html 文件是一整行,里面的脚本根本无法执行。请问怎么才能让生成的html 文件是一行一行显示的呢?还有个问题:
我用如下代码 实现dropdownlist 二级联动无刷新
//ddl_Menu是二级dropdownlist
怎么才能得到ddl_Menu 的SelectedValue呢?请各位大侠多多指教var ddl_menu=document.getElementById("ddl_Menu");
ddl_menu.innerText="";//直接清空!
var oHttpReq = new ActiveXObject("MSXML2.XMLHTTP");
var oDoc = new ActiveXObject("MSXML2.DOMDocument");
oHttpReq.open("POST", "ddl_child.aspx?ChanleID="+chanleid, false);//调用读取小类数据的页面,将大类编号值传递过去
oHttpReq.send("");
result = oHttpReq.responseText;
oDoc.loadXML(result);
items1 = oDoc.selectNodes("//MenuInfo/Table/MI_Name"); //读取所有请求大类(ddl_Chanle)所属小类(ddl_Menu)的类名
items2 = oDoc.selectNodes("//MenuInfo/Table/MI_ID"); //读取所有请求大类所属小类的编号
var itemsLength=items1.length;
if(itemsLength>0)
{
    for(i=0;i<itemsLength;i++) //将栏目的名称和编号赋予ddl_Menu
    {
var newOption = document.createElement("OPTION");
newOption.text=items1[i].text;
newOption.value=items2[i].text;
ddl_menu.options.add(newOption);
    }
}
else
{
    var elseOption = document.createElement("OPTION");
    elseOption.text='没有下级栏目';
    elseOption.value='0';
    ddl_menu.options.add(elseOption);
}

解决方案 »

  1.   

    模板是一个html 页
    没啥问题啊!
    html源代码也是 格式化的
    整整齐齐的哩!
    就是一生成就那个鸟样!很不爽啊!
      

  2.   

    谢谢大家关注
    读的代码:
    using(StreamReader reader=new StreamReader(Server.MapPath(templetpath),code))
    {
        string line="";
        while((line=reader.ReadLine())!=null)//推荐格式!
        {
    htmltext.Append(line);//将模板内容追加到stringbuilder
        }
        reader.Close();
    }写:
    using(StreamWriter sw=new StreamWriter(Server.MapPath(path),false,code))
    {
        sw.WriteLine(htmltext);
        sw.Flush();
        sw.Close();
    }没啥问题吧!
      

  3.   

    晕。
    你用StringBuilder.Append()把模板每行一直累加
    不出现你这样的问题才怪。
      

  4.   

    string template = string.Empty;
    using(StreamReader reader=new StreamReader(Server.MapPath(templetpath),code))
    {
    template=sr.ReadToEnd();
    }
    template=template.Replace("<!--啊啊-->","aa");
    ...
    using(StreamWriter sw=new StreamWriter(Server.MapPath(path),false,code))
    {
        sw.WriteLine(template);
    }
    这样的话就不会出现你那个问题的。
      

  5.   

    阿兄;第2个问题我有点
    你用 ddl_menu.value 取不出值吗?要不你把ddl_Menu传到你这个js方法里去,也不用document.getElementById("ddl_Menu");了
    您别叫前辈这样另我汗颜的。。
      

  6.   

    to sbqcel:
    我出道晚,到现在也就三个月多几天。
    手还很生,你怎么也不会比我晚吧!
    第一个问题成功解决,谢了啊!
    ddl_menu.value是什么值?
    我用一个函数
    function GetValue()
    {
        if(document.getElementById("ddl_menu")!=null)
        {
    var obj=document.all.ddl_menu;
    return obj.options[obj.selectedIndex].value;
        }
        else
        {
    return 0;
        }
    }
    取不到
    我用一个 hidden 的 input value=GetValue() runat=server
    返回是""
    看看那错了?
      

  7.   

    我只别你多6个月。。
    不知 obj.options[obj.selectedIndex].value 是否取道值
    你 alert(obj.options[obj.selectedIndex].value);
    看下
      

  8.   

    兄弟
    我在csdn上发的几个贴
    没人再回第二遍的!
    你让我老感动了!
      

  9.   

    第2个问题:
    function GetValue()
    {
    if(document.getElementById("ddl_menu")!=null)
    {
    var obj=document.all.ddl_menu;
    document.getElementById("hd").innerText = obj.options[obj.selectedIndex].value;
    }
    else
    {
    return 0;
    }
    }
    <SELECT id="ddl_menu" style="Z-INDEX: 101; LEFT: 600px; POSITION: absolute; TOP: 376px"
    name="ddl_menu" onchange=GetValue()>
    <OPTION value="1" selected>sss</OPTION>
    <option value="2">dddd</option>
    <option value="3">xxxx</option>
    </SELECT>
    <INPUT style="Z-INDEX: 102; LEFT: 712px; POSITION: absolute; TOP: 208px" type="hidden"
    id="hd" runat="server" name="hd">
      

  10.   

    msn 有不?
    不用QQ了,呵呵,抱歉