0
我有一个需要收集标签信息的数据源。这些都在连接到不同DataSource的DataList中。当我调试我的应用程序时,值是Nothing。因为没有波浪线,所以我认为自己有了灵丹妙药,但它不起作用。有人可以帮我找到数据源,以便我可以完成这个项目吗?找不到嵌套数据源
我试过FindControl("dsPicklist")
和DirectCast(FindControl("dsPicklist"), SqlDataSource)
但是没有人得到返回的值。
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
' Find the nested DataSource control in the DataList.
Dim ds As SqlDataSource = DirectCast(FindControl("dsPicklist"), SqlDataSource)
'convert the DataSource into a dataView
Dim dv As DataView = DirectCast(ds.[Select](DataSourceSelectArguments.Empty), DataView)
For Each drv As DataRowView In dv
'Find the label
Dim lbl As Label = FindControl("Label3")
'Display the data into the label
lbl.Text = dv("TEXT").ToString
Next
End Sub
<asp:DataList ID="DataList1" runat="server" DataSourceID="SqlDataSource1"
Width="100%" CellPadding="4" ForeColor="#333333">
<ItemTemplate>
<asp:HiddenField ID="hiddenPicklistID" runat="server"
Value='<%# Bind("PicklistID") %>' />
<asp:Label ID="Label3" runat="server"></asp:Label>
<asp:SqlDataSource ID="dsPicklist" runat="server"
ConnectionString="<%$ ConnectionStrings:SurveyConnectionString %>"
SelectCommand="SELECT p.TEXT FROM PICKLIST p
JOIN C_Survey_Questions c
ON p.PICKLISTID = c.PicklistID
AND c.QuestionID = @QuestionID
AND c.SurveyID = @SurveyID
WHERE p.PICKLISTID IS NOT NULL
AND c.PicklistID IS NOT NULL">
<SelectParameters>
<asp:ControlParameter ControlID="DropDownList1" Name="SurveyID"
PropertyName="SelectedValue" Type="Int32" />
<asp:ControlParameter ControlID="HiddenField2" Name="QuestionID"
PropertyName="Value" Type="Int32" />
</SelectParameters>
</asp:SqlDataSource>
</ItemTemplate>
</asp:DataList>
哎呦内
SqlDataSource
控制,对不起。 'ItemTemplate'在那里。我只是复制并粘贴页面的某些部分,因为其他标签与此问题无关。我将数据源放在数据列表中,以便隐藏域和数据源更容易找到对方。我曾尝试在列表之外添加额外的数据源,并且在隐藏域中存在问题。 – jlg 2012-02-08 22:52:30我无法得到任何东西显示。你写的代码似乎只是我需要的,但我想我不是数据绑定的权利?起初我只写了'DataList1.DataBind()',但没有出现在标签中。从那以后,我重新写了很多次,每次都没有结果。查询结果在项目符号列表中显示得很好,因为它们有很多选项,但我不能使用项目符号列表,因为用户需要能够点击是或否,因为这是用于调查。 – jlg 2012-02-09 17:33:59
我想你需要另一个嵌套的DataList,第一个有你想要重复的标签。并将该datalist的数据源设置为dsPicklist。你不需要任何代码隐藏。 – Magnus 2012-02-09 17:48:18