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