mshtml:javascript为HTML文件中的Select添加option

王朝c#·作者佚名  2006-12-17
窄屏简体版  字體: |||超大  

使用结合MSHTML与WebBrowser生成美观实用的WinForm应用程序(By Lostinet)中介绍的方法写程序时遇到的一个问题的解决方法。

在AxSHDocVw.AxWebBrowser控件加载的HTML文件中有一个Select,希望动态从数据库中取得列表内容放到该Select中,要求该Select的Option中显示部门的名称,同时选中某一Option时可以传递对应的部门编号,通过

((mshtml.HTMLSelectElementClass)eleSel).innerHTML = '<option ...>..</option>';

是不行的。

是不行的。

尝试用页面中的javascript实现该操作:

1、在Winform窗体中定义一个public类型的字符串变量,用于传递给HTML文档,规定格式为“部门名称1#部门名称2#……;部门编号1#部门编号2#……”,即该字符串(strMoreUnit)的前半部分为部门名称,后半部分为部门编号,部门名称与部门编号之间用';'分隔,部门名称与部门编号内部以'#'分隔。这样的一个字符串很容易由循环在AxSHDocVw.AxWebBrowser控件的DocumentComplete事件中构造(应该使用System.Text.StringBuilder构造以提高效率)。

2、在被加载的HTML文件中定义函数:

{

var strMoreUnit = document.MainForm.SetMoreUnit();

if (strMoreUnit != '')

{

var cAll = strMoreUnit.split(';');

var cName = cAll[0].split('#');

var cID = cAll[1].split('#');

for(i=0;i<cName.length;i++)

{

var oOption = document.createElement('OPTION');

selOU.options.add(oOption);

oOption.innerText = cName[i];

oOption.value = cID[i];

}

}

}

通过截取的字符串的方式循环为oOption设置innerText和value。

3、在HTML文件的<body ...>标签中的'onLoad'事件中调用2中的函数SetMoreUnit()即可。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航