Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 指定单击链接时要加载的xml文件_Javascript_Asp.net_Xml_Vb.net - Fatal编程技术网

Javascript 指定单击链接时要加载的xml文件

Javascript 指定单击链接时要加载的xml文件,javascript,asp.net,xml,vb.net,Javascript,Asp.net,Xml,Vb.net,我希望这样,当在主页上单击一个链接时,它会将一个特定的xml文件加载到下一个页面(该页面称为category list.apsx) 此类别列表页面使用Repeater控件方法在页面上显示xml详细信息。我使用了如下示例: 因此,此时repeater脚本看起来如下所示: <script runat="server"> sub Page_Load if Not Page.IsPostBack then dim mycategories=New DataSe

我希望这样,当在主页上单击一个链接时,它会将一个特定的xml文件加载到下一个页面(该页面称为category list.apsx)

此类别列表页面使用Repeater控件方法在页面上显示xml详细信息。我使用了如下示例:

因此,此时repeater脚本看起来如下所示:

<script runat="server">
    sub Page_Load
    if Not Page.IsPostBack then
       dim mycategories=New DataSet
       mycategories.ReadXml(MapPath("categories.xml"))
       categories.DataSource=mycategories
       categories.DataBind()
    end if
    end sub
</script>

子页面加载
如果不是Page.IsPostBack,则
dim mycategories=新数据集
ReadXml(映射路径(“categories.xml”))
categories.DataSource=mycategories
categories.DataBind()
如果结束
端接头
在做了一些研究之后,我确实发现有人有同样的问题,解决方法是在主页(即category list.apsx#company1results)的链接中插入#标记,然后在列表页面上插入一些脚本以获取正确的xml文件:

<script type="text/javascript">
    var old_onload = window.onload; // Play it safe by respecting onload handlers set by other scripts.
    window.onload=function()
    {
     var categories = document.location.href.substring(document.location.href.indexOf("#")+1);
     loadXMLDoc('XML/'+categories+'.xml');
     old_onload();
    }
</script>

var old_onload=window.onload;//为了安全起见,请遵守其他脚本设置的onload处理程序。
window.onload=function()
{
var categories=document.location.href.substring(document.location.href.indexOf(“#”)+1);
loadXMLDoc('XML/'+categories+'.XML');
old_onload();
}
这来自以下链接:


如何使这两个脚本相互连接?

使用查询字符串而不是哈希“#”,更容易,因为查询字符串将发送到服务器端,因此不需要客户端javascript

因此,当调用category list.apsx?cat=company1results时,可以使用以下代码在xml文件之间切换:

Public Sub Page_Load()
    If Not Page.IsPostBack Then
        Dim cat As String = Request.QueryString("cat")

        Dim mycategories As DataSet = New DataSet()
        mycategories.ReadXml(MapPath(cat + ".xml"))
        categories.DataSource = mycategories
        categories.DataBind()
    End If
End Sub

您为什么将
mycategories
设置为
dynamic
?感谢您的回复Erwin-其当前弹出以下错误-编译器错误消息:BC30002:未定义类型“dynamic”。第22行:Dim mycategories As dynamic=New DataSet()@Jason:我认为完全没有必要将mycategories定义为
dynamic
。只需将其更改为
DataSet
Dim mycategories As DataSet=New DataSet()
,现在似乎工作正常谢谢!你对这个更新满意吗?如果是这样,你能编辑你的代码,我会把它标记为correct@DanielHilgarth我将C#转换为VB.Net,我没有注意输出,但是我对您的更新很满意,谢谢!