消失的菜单项

用户名

首先,如果我不确定这个问题的表达方式是否合理,请原谅我,但是可以了。

我在菜单中有一个项目列表,这些项目链接到数据库中的记录。用户可以单击一个链接,该链接打开一个表单,以允许更改记录,但是,如果该字段以链接(<a href...开头,则它不会显示在列表中。

SQL代码是:

SELECT ResourceID,  LEFT (ResourceContent, 40) AS ResourceContent
FROM tblResources
WHERE YouTubeLink IS NULL AND DisplayRecord = 1
ORDER BY PositionNumber ASC

SQL代码的输出为:

Record  ResourceID  ResourceContent
1       1           <p><a href="../../other-files/Annual-Rep
2       2           <p>Click here to see the most recent MfM
3       3           <p>Click here to read the latest newslet
4       7           <p>Here is a load of text that will be u

菜单代码为:

<h3><%=(rsContent.Fields.Item("MainMenuName").Value)%></h3>

<ul>

<li class="menuHeading"><%=(rsContent.Fields.Item("SubMenuName").Value)%></li>
<li class="menuList brown" style="margin-left:-15px">Documents</li>
<% 
While ((RepeatNonMedia__numRows <> 0) AND (NOT rsNonMedia.EOF)) 
%>
  <li id="resourceMenuList"><a href="resources-modify-document-record.asp?idVal=<%=(rsNonMedia.Fields.Item("ResourceID").Value)%>"><%=(rsNonMedia.Fields.Item("ResourceContent").Value)%>...</li>
  <% 
  RepeatNonMedia__index=RepeatNonMedia__index+1
  RepeatNonMedia__numRows=RepeatNonMedia__numRows-1
  rsNonMedia.MoveNext()
Wend
%>

<li class="menuList brown" style="margin-left:-15px">Videos</li>
<% 
While ((RepeatMedia__numRows <> 0) AND (NOT rsMedia.EOF)) 
%>
  <li id="resourceMenuList"><a href="resources-modify-video-record.asp?idVal=<%=(rsMedia.Fields.Item("ResourceID").Value)%>"><%=(rsMedia.Fields.Item("YouTubeCaption").Value)%>...</a></li>
  <% 
  RepeatMedia__index=RepeatMedia__index+1
  RepeatMedia__numRows=RepeatMedia__numRows-1
  rsMedia.MoveNext()
Wend
%>
<% 
While ((RepeatAddRecord__numRows <> 0) AND (NOT rsAddRecord.EOF)) 
%>
<%
    fName = Replace (rsAddRecord.Fields.Item("SubMenuName").Value," ","-")
    fName = Lcase(fName)
%>
  <li class="menuHeading"><a href="<% Response.Write(fName) %>-modify-record.asp"><%=(rsAddRecord.Fields.Item("SubMenuName").Value)%></a></li>
  <% 
  RepeatAddRecord__index=RepeatAddRecord__index+1
  RepeatAddRecord__numRows=RepeatAddRecord__numRows-1
  rsAddRecord.MoveNext()
Wend
%>

<li class="menuHeading"><a href="learn-more-modify-record.asp?mmID=<%=(rsAddRecordExtra.Fields.Item("MainMenuID").Value)%>&smID=<%=(rsAddRecordExtra.Fields.Item("SubMenuID").Value)%>"><%=(rsAddRecordExtra.Fields.Item("SubMenuName").Value)%></a></li>
</ul>

该网页的输出类似于:

Learn More

Resources
   Documents
      Click here to see the most recent MfM...
      Click here to read the latest newslet...
      Here is a load of text that will be u...
  Videos
      Money for Madagascar - Our Work in Pictu...
      Money for Madagascar - Our Work in Pictu...
      Bambi's mother comes back from the dead ...
Case Studies
Friends Of MfM
The Welsh Connection

如您所见,SQL输出记录,但是代码无法识别它。如果链接在第40个字符之外,则没有问题,但是,如果链接在第40个字符之内,列表将截断到<a href...标签。

我曾尝试使用<% Response.Write() %>包围<li>标签信息,但没有运气。如果我删除所有格式,则仅使用基本的HTML代码,仍然没有运气。

我考虑过使用正则表达式删除链接代码(包括结束标记),但是我对正则表达式的编写还不够。

哦,您能帮我解决这个问题吗?

提前谢谢了。

用户名

这就是我所做的。

我从SQL语句中删除了限制字符的代码。然后,我用替换了<a\b[^>]*>safetyOtter中的代码<[^>]*>此正则表达式代码删除字段中的所有html代码。然后,我添加了更多代码,然后将其重命名为regex输出。然后,我在<a>标记中使用了它来限制显示的字符数。

新的SQL代码

SELECT ResourceID, ResourceContent
FROM tblResources
WHERE YouTubeLink IS NULL AND DisplayRecord = 1
ORDER BY PositionNumber ASC

正则表达式代码

<%
set regex = New RegExp
regex.Pattern = "<[^>]*>"
regex.Global = true
regex.IgnoreCase = true
%>

重命名该<% While... %>语句后添加的正则表达式的代码

<%
ResourceContent = regex.Replace((rsNonMedia.Fields.Item("ResourceContent").Value),"")
%>

HTML代码

<a href="resources-modify-document-record.asp?idVal=<%=(rsNonMedia.Fields.Item("ResourceID").Value)%>"><%=LEFT(ResourceContent,40)%>...</a>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章