Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/35.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
C# 为什么我的第二个listview是空的_C#_Asp.net_Listview - Fatal编程技术网

C# 为什么我的第二个listview是空的

C# 为什么我的第二个listview是空的,c#,asp.net,listview,C#,Asp.net,Listview,我被难住了。我有两个相对相同的嵌套listview,在按钮单击事件中,第一个listview很好,但第二个是空的: aspx: “0附加值”应该是6,就像默认值一样,但就我而言,我不明白为什么它不能“看到”所有的ItemTemplates 有什么想法,或想法现在如何调试 更新4/1/14 9:45PM:添加了sqldatasource SelectCommands,因为问题似乎与第二个sqldatasource上的ControlParameter有关 当选择命令为: SelectCommand

我被难住了。我有两个相对相同的嵌套listview,在按钮单击事件中,第一个listview很好,但第二个是空的:

aspx:

“0附加值”应该是6,就像默认值一样,但就我而言,我不明白为什么它不能“看到”所有的ItemTemplates

有什么想法,或想法现在如何调试

更新4/1/14 9:45PM:添加了sqldatasource SelectCommands,因为问题似乎与第二个sqldatasource上的ControlParameter有关

当选择命令为:

 SelectCommand="SELECT col1, col2, col3 from tbl where id=0"
它很好用

但当它是:

 SelectCommand="SELECT col1, col2, col3 from tbl where id=@CourseId"

找到的项目为0。不知何故,它找不到控件ID,即使数据源正在查找9项

你有没有看一下你从数据库中得到了什么?也许你得到的是6张没有任何内容的唱片或者类似的东西。只是一个猜测。

我最终对代码进行了一点重新分解,以使用

<asp:QueryStringParameter Name="CourseId" QueryStringField="CourseId" />

而不是:

<asp:ControlParameter ControlID="hfCourseId" Name="CourseId" PropertyName="Value" />


尽管我在代码中设置了hfCourseId,但出于某种原因,它似乎没有按照我需要的方式设置。可能与asp.net页面生命周期有关。但是稍微修改一下代码,并使用CourseId作为QueryStringParameter似乎就可以了。

谢谢,是的,我检查过了。我不确定为什么数据源会得到6条记录,但listview显示为0。我检查了数据库,并使用sql profiler进行了查询,正确的查询正在进行,即查找6条记录。listview是空的,这只是个谜。您如何将值传递给
@CourseId
?我会再次检查您是否正确传递了该参数,因为它显然没有读取它。我认为您应该在
Select
语句中传递它,不是吗?希望这能有所帮助。谢谢@MilesWatson,事情似乎就是这样。我不确定这里要复制的代码部分是否已经显示,请注意,在加载页面中正在设置hfCourseId,因此我不确定嵌套的listview为什么没有选择它。但是我对代码做了一些修改,改为使用了asp:querystring参数,这就成功了。谢谢没问题。你应该把你的答案标记为正确!
 SelectCommand="SELECT col1, col2, col3 from tbl where id=@CourseId"
<asp:QueryStringParameter Name="CourseId" QueryStringField="CourseId" />
<asp:ControlParameter ControlID="hfCourseId" Name="CourseId" PropertyName="Value" />