C# 嵌套的gridview没有数据,如果父gridview在(where=querystring)上填充,则需要此处的帮助
问题如上所述。 我有一个父gridview,它将通过获取查询字符串来填充。 但是,将不会填充嵌套的子gridview。我也不明白为什么。 有什么帮助吗C# 嵌套的gridview没有数据,如果父gridview在(where=querystring)上填充,则需要此处的帮助,c#,asp.net,gridview,nested,C#,Asp.net,Gridview,Nested,问题如上所述。 我有一个父gridview,它将通过获取查询字符串来填充。 但是,将不会填充嵌套的子gridview。我也不明白为什么。 有什么帮助吗 <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" BorderColor="Black" BorderStyle="Solid" DataKeyNames="QuestionID" DataSourceID
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
BorderColor="Black" BorderStyle="Solid" DataKeyNames="QuestionID"
DataSourceID="SqlDataSource1" Width="447px">
<Columns>
<asp:BoundField DataField="QuestionID" HeaderText="QuestionID" ReadOnly="True"
SortExpression="QuestionID" />
<asp:BoundField DataField="SurveyID" HeaderText="SurveyID"
SortExpression="SurveyID" />
<asp:BoundField DataField="QuestionTitle" HeaderText="QuestionTitle"
SortExpression="QuestionTitle" />
<asp:BoundField DataField="AnswerType" HeaderText="AnswerType"
SortExpression="AnswerType" />
<asp:TemplateField>
<ItemTemplate>
<asp:GridView ID="GridView2" runat="server" AutoGenerateColumns="False"
BorderStyle="Solid" DataSourceID="SqlDataSource2">
<Columns>
<asp:BoundField DataField="AnswerValue" HeaderText="AnswerValue"
SortExpression="AnswerValue" />
</Columns>
</asp:GridView>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:myConnectionString %>"
SelectCommand="SELECT * FROM [Question] WHERE ([SurveyID] = @SurveyID)">
<SelectParameters>
<asp:QueryStringParameter Name="SurveyID" QueryStringField="sid"
Type="String" />
</SelectParameters>
</asp:SqlDataSource>
</div>
<asp:SqlDataSource ID="SqlDataSource2" runat="server"
ConnectionString="<%$ ConnectionStrings:myConnectionString %>"
SelectCommand="SELECT AnswerValue FROM Results WHERE (QuestionID = @QuestionID)">
<SelectParameters>
<asp:Parameter Name="QuestionID" />
</SelectParameters>
</asp:SqlDataSource>
您可以将HiddenField添加到GridView1的ItemTemplate中,并将其与QuestionID绑定
并使用ControlParameter将QuestionID与SqlDataSource2进行比较
<asp:SqlDataSource ID="SqlDataSource2" runat="server"
ConnectionString="<%$ ConnectionStrings:myConnectionString %>"
SelectCommand="SELECT AnswerValue FROM Results WHERE (QuestionID = @QuestionID)">
<SelectParameters>
<asp:ControlParameter ControlID="HiddenField1" Name="QuestionID"
PropertyName="Value" Type="Int32" />
</SelectParameters>
</asp:SqlDataSource>
我正在显示QuestionID,因此我不必将其设置为hiddenfield。它会给我以下错误:数据绑定:“System.Web.UI.WebControl.GridView”不包含名为“Value”的属性。@MarlinusYapi-您必须重新配置这两个数据源控件。
<asp:SqlDataSource ID="SqlDataSource2" runat="server"
ConnectionString="<%$ ConnectionStrings:myConnectionString %>"
SelectCommand="SELECT AnswerValue FROM Results WHERE (QuestionID = @QuestionID)">
<SelectParameters>
<asp:ControlParameter ControlID="HiddenField1" Name="QuestionID"
PropertyName="Value" Type="Int32" />
</SelectParameters>
</asp:SqlDataSource>