有条件地调用函数

时间:2016-03-28 05:57:54

标签: html vbscript

我的VBScript应用程序中有一个Sub。它会在单击搜索按钮时填充页面上的表格,还有另一个按钮可使用window.location.reload()方法清除页面。

我的问题是当用户点击填充表格的搜索按钮时,用户可以再次点击搜索按钮,表格会附加更多数据。

我希望首先清除页面,然后填充表格。 有迭代,所以我不能简单地在window.location.reload() Sub。

中调用Search(directory)
<p>
<input name="Clear" type="button" class = "button" value="Clear" OnClick="window.location.reload()">
<input name="Search" type="button" class = "buttongo aright" value="Search" OnClick="Search"> 
</p>

我的VBScript代码是:

Sub Search(directory)
    Dim flag
    Dim found
    Dim nodeinfo(4)
    Dim ipath
    On Error Resume Next
    Set fldr = fso.GetFolder(FolderPath)
    Set Fls = fldr.Files
    For Each item In Fls
        sFSpec = FSO.GetAbsolutePathName(item)
        If LCase(FSO.GetExtensionName(item.Name)) = "xml" Then
            objMSXML.async = True
            '...
            'More code here to generate table mytable ...
            '...
        End If
    Next
    Set fldrs = fldr.SubFolders
    For Each item In fldrs
        Search item.path
    Next
End Sub

目前,如果表格中有数据,我将禁用搜索按钮:

If no_of_occurence > 0 Then document.getElementById("search_btn").disabled = True

修改

生成表格:

Set mytable = document.createElement("table")
mytable.setAttribute "id", "mytable"
mytable.setAttribute "align", "center" 
Set thead = document.createElement("thead")
Set tr = document.createElement("tr")
Set th = document.createElement("th")

th.setAttribute "colSpan","5" 
thead.appendChild tr
Set tr2 = document.createElement("tr")
Set th1 = document.createElement("th")  
Set th2 = document.createElement("th")
Set th3 = document.createElement("th")
Set th4 = document.createElement("th")
Set th5 = document.createElement("th")
th1.innerText = "ABC"
th2.innerText = "DEF"
th3.innerText = "GHI"
th4.innerText = "JKL"
th5.innerText = "MNO"
tr2.appendChild th1
tr2.appendChild th2
tr2.appendChild th3
tr2.appendChild th4
tr2.appendChild th5
thead.appendChild tr2
mytable.appendChild thead

Set td1 = document.createElement("td")
td1.innerText = nodeinfo(0)
tr3.appendChild td1

如果返回结果,则有一个变量,例如no_of_results,它包含一个数字。基于该变量,我正在禁用该按钮。

2 个答案:

答案 0 :(得分:1)

创建<table>(和<thead>)只有在它们不存在的情况下才会创建:

Set mytable = document.getElementById("mytable")
If mytable Is Nothing Then
    Set mytable = document.createElement("table")
    '...
    Set thead = document.createElement("thead")
    '...
    mytable.appendChild thead
End If

并将表格内容放入<tbody>,这样您就可以在添加新搜索结果之前删除现有搜索结果:

For Each tbody In mytable.getElementsByTagName("tbody")
    mytable.removeChild(tbody)
Next

Set tbody = document.createElement("tbody")
'...
'create rows and cells and append them to the table body
'...

mytable.appendChild tbody

答案 1 :(得分:1)

我也有同样的问题,但在我的情况下,我使用Javascript并以不同的方式处理这种情况。在这种情况下,尝试使用另一个函数来调用clear和load函数。

尝试此代码,单击一下按钮调用2个功能

<input name="Search" type="button" class = "buttongo aright" value="Search" OnClick="window.location.reload(); Search();">