首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQLDataSource内部GridView

SQLDataSource内部GridView
EN

Stack Overflow用户
提问于 2017-04-19 12:56:27
回答 1查看 343关注 0票数 1

在过去的几天里,我一直试图为我的问题找到一个解决方案,但到目前为止我还没有。我有一个Gridview,在编辑模式下,其中一个字段有一个人员的DropDownList,它由一个选择填充,该选择使用该行的另外两个字段(State和City)。我尝试了我在网络上找到的所有关于它的东西,但我无法使它发挥作用。你能帮帮我吗?代码如下

代码语言:javascript
复制
<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=上设置属性SqlDataSource“false”,它显示‘必须声明标量变量@xxx’,我检查了隐藏字段,并且它们加载了值,因此问题是控件参数taht没有从它获得值。

EN

回答 1

Stack Overflow用户

发布于 2018-07-02 23:16:33

您应该做的是在下拉列表之前拥有隐藏字段和sqldatasource。您所遇到的问题是由于加载数据时造成的。

代码语言:javascript
复制
<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: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>

                <asp:DropDownList ID="DdlPeople" runat="server" AutoPostBack="true" 
                    DataSourceID="SqlDataSourcePeopleEdit" DataTextField="People" 
                    DataValueField="People">
                </asp:DropDownList>
            </EditItemTemplate>
        </asp:TemplateField>
   ...stuff...     
</asp:GridView>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43496430

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档