Sqldatasource внутри gridview
или в последние дни я пытался найти решение своей проблемы, но до сих пор не мог. У меня есть Gridview, в котором в режиме редактирования одно из полей имеет выпадающий список людей, который заполняется выбором, использующим два других поля этой строки (штат и город). Я перепробовал все, что нашел в интернете, и не смог заставить его работать. Можете ли вы помочь мне, пожалуйста? Код ниже
<asp:GridView ID="GridView1" runat="server" AllowSorting="True" DataKeyNames="id,Municipio,UF" DataSourceID="SqlDataSource5"> <AlternatingRowStyle BackColor="White" /> <Columns> <asp:CommandField ShowEditButton="True" /> ...stuff... <asp:TemplateField HeaderText="UF" SortExpression="UF"> <EditItemTemplate> <asp:Label ID="Label1" runat="server" Text='<%# Eval("UF") %>'> </asp:Label> </EditItemTemplate> <ItemTemplate> <asp:Label ID="Label1" runat="server" Text='<%# Bind("UF") %>'> </asp:Label> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="Municipio" SortExpression="Municipio"> <EditItemTemplate> <asp:Label ID="Label2" runat="server" Text='<%# Eval("Municipio") %>'></asp:Label> </EditItemTemplate> <ItemTemplate> <asp:Label ID="Label2" runat="server" Text='<%# Bind("Municipio") %>'></asp:Label> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="People" SortExpression="People"> <ItemTemplate> <asp:Label ID="LbPeople" runat="server" Text='<%# Bind("Cultura") %>'></asp:Label> </ItemTemplate> <EditItemTemplate> <asp:DropDownList ID="DdlPeople" runat="server" AutoPostBack="true" DataSourceID="SqlDataSourcePeopleEdit" DataTextField="People" DataValueField="People"> </asp:DropDownList> <asp:HiddenField ID="Hidden1" Value='<%# Bind("Municipio") %>' runat="server"/> <asp:HiddenField ID="Hidden2" Value='<%# Bind("UF") %>' runat="server"/> <asp:SqlDataSource ID="SqlDataSourcePeopleEdit" runat="server" ConnectionString="<%$ ConnectionStrings:dbdb %>" ProviderName="<%$ ConnectionStrings:somar.ProviderName %>" SelectCommand="SELECT People FROM Table_People WHERE (Cidade = @Municipio) AND (UF = @UF)" CancelSelectOnNullParameter="false"> <SelectParameters> <asp:ControlParameter ControlID="Hidden1" Name="Municipio" PropertyName="Value" Type="String" /> <asp:ControlParameter ControlID="Hidden2" Name="UF" PropertyName="Value" Type="String" /> </SelectParameters> </asp:SqlDataSource> </EditItemTemplate> </asp:TemplateField> ...stuff... </asp:GridView>
Что я делаю не так?
Что я уже пробовал:
Когда я нажимаю кнопку Изменить, выпадающий список не загружает значения. И если я установлю свойство CancelSelectOnNullParameter= "false" на SqlDataSource, он покажет "должен объявить скалярную переменную @xxx", я проверил скрытые поля, и у них есть загруженные значения, так что проблема в том, что controlparameter taht не получает от него значения