【问题标题】:problem with display datagrid with the values from dropdownlist asp.net [closed]使用下拉列表 asp.net 中的值显示数据网格的问题 [关闭]
【发布时间】:2020-09-03 02:20:02
【问题描述】:

您好,这是我的第一个问题,对不起英语,我会尽力解决我的问题。 我有2个数据库。第一个 - “klienci”在哪里是 id_klienta imie,第二个是 id_klienta 和 id_filmu。 我试图通过下拉列表“imie”进行选择并设置 id_klienta,然后在数据网格“id_klienta”和“id_filmu”上显示(还有几列 - 我认为它现在不重要)。我建立了 2 个连接,并且我有一个带有“imie”的下拉列表,但是当我从列表中选择一个时,数据网格不显示任何内容(实际上我什至只能看到空的数据网格)。可见是真的,应该去哪里找原因?

<body>
<form id="form1" runat="server">
<div>

</div>
    <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString %>" SelectCommand="SELECT [id_klienta], [imie], [nazwisko] FROM [klienci]"></asp:SqlDataSource>
    <asp:SqlDataSource ID="SqlDataSource2" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString %>" SelectCommand="SELECT [id_klienta], [id_filmu], [start], [stop] FROM [wypozyczenia] WHERE ([id_klienta] = @id_klienta)">
        <SelectParameters>
            <asp:ControlParameter ControlID="DropDownList1" Name="id_klienta" PropertyName="SelectedValue" Type="Int32" />
        </SelectParameters>
    </asp:SqlDataSource>
    <asp:DropDownList ID="DropDownList1" runat="server" DataSourceID="SqlDataSource1" DataTextField="imie" DataValueField="id_klienta">
    </asp:DropDownList>
    <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" CellPadding="4" DataSourceID="SqlDataSource2" ForeColor="#333333" GridLines="None">
        <AlternatingRowStyle BackColor="White" />
        <Columns>
            <asp:BoundField DataField="id_klienta" HeaderText="id_klienta" SortExpression="id_klienta" />
            <asp:BoundField DataField="id_filmu" HeaderText="id_filmu" SortExpression="id_filmu" />
            <asp:BoundField DataField="start" HeaderText="start" SortExpression="start" />
            <asp:BoundField DataField="stop" HeaderText="stop" SortExpression="stop" />
        </Columns>
        <EditRowStyle BackColor="#2461BF" />
        <FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
        <HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
        <PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" />
        <RowStyle BackColor="#EFF3FB" />
        <SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" />
        <SortedAscendingCellStyle BackColor="#F5F7FB" />
        <SortedAscendingHeaderStyle BackColor="#6D95E1" />
        <SortedDescendingCellStyle BackColor="#E9EBEF" />
        <SortedDescendingHeaderStyle BackColor="#4870BE" />
    </asp:GridView>
</form>

我的第二个问题是是否可以在此下拉列表中显示数据库中的两个值?我的意思是现在我只有“imie”,我想要“imie”和“nazwisko”? 非常感谢您的帮助!!!!

【问题讨论】:

  • 您需要将AutoPostBack=true添加到DropDownList1
  • 我已经添加了答案,请查看。

标签: c# asp.net select


【解决方案1】:

您需要将AutoPostBack="True"添加到DropDownList1,以便当您从下拉列表中选择一个项目时,服务器能够运行查询并更改gridview的数据源:

<asp:DropDownList ID="DropDownList1" AutoPostBack="True" runat="server" DataSourceID="SqlDataSource1" DataTextField="imie" DataValueField="id_klienta">
</asp:DropDownList>

查看AutoPostBack 属性的工作原理:

https://docs.microsoft.com/en-us/dotnet/api/system.web.ui.webcontrols.listcontrol.autopostback

【讨论】:

  • 谢谢 :) 你知道如何在我的drpdownlist1 上显示'imie'&'nazwisko' 两列吗?我尝试制作另一列(同时选择两者),但它对我不起作用。再次感谢
  • 不客气。请将其作为一个新问题发布,并提供足够的信息,以便人们提供帮助。
猜你喜欢
  • 1970-01-01
  • 2011-07-31
  • 1970-01-01
  • 1970-01-01
  • 2012-07-09
  • 2023-03-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多