Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/36.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# 嵌套的gridview没有数据,如果父gridview在(where=querystring)上填充,则需要此处的帮助_C#_Asp.net_Gridview_Nested - Fatal编程技术网

C# 嵌套的gridview没有数据,如果父gridview在(where=querystring)上填充,则需要此处的帮助

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

问题如上所述。 我有一个父gridview,它将通过获取查询字符串来填充。 但是,将不会填充嵌套的子gridview。我也不明白为什么。 有什么帮助吗

 <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>