为了账号安全,请及时绑定邮箱和手机立即绑定

数据不会根据下拉列表选择绑定到 gridview

数据不会根据下拉列表选择绑定到 gridview

C#
三国纷争 2021-06-15 14:08:43
我目前有两个下拉列表,它们填充了数据库中的名称。我想要做的是选择一个播放器,然后单击按钮,将表中的数据填充到 gridview 中。现在我只是收到一条“没有返回数据”的消息,我不知道为什么。 <asp:DropDownList ID="ddl_QB1"  runat="server" Width="200px" AppendDataBoundItems="True"   AutoPostBack="True"  Height="16px" DataTextField="Player" DataValueField="id"  ></asp:DropDownList><asp:Gridview ID="GridView1" runat="server" AutoGenerateColumns="false" Visible="true"                             BackColor="White" BorderColor="#336666" BorderStyle="Double" BorderWidth="3px"                               CellPadding="4" GridLines="Horizontal" ShowHeaderWhenEmpty="True" EmptyDataText="No records Found">                              <Columns>                                   <asp:TemplateField HeaderText="Total Points">                                      <EditItemTemplate>                                          <asp:TextBox ID="TextBox2" runat="server" Text='<%# Bind("[Pts]") %>'>                                          </asp:TextBox>                                      </EditItemTemplate>                                      <ItemTemplate>                                          <asp:Label ID="Label2" runat="server" Text='<%# Bind("Pts") %>'>                                          </asp:Label>                                      </ItemTemplate>      protected void Page_Load(object sender, EventArgs e)    {        LoadQuarterbacks();        if (!Page.IsPostBack)        {            SqlConnection con = new SqlConnection(connectionstring);            SqlCommand cmd = new SqlCommand("select [id], [Player], [Pts], [Att], [Cmp], [Yds], [TD] from Quarterbacks", con);            SqlDataAdapter sda = new SqlDataAdapter(cmd);            DataTable dt = new DataTable();            sda.Fill(dt);            ddl_QB1.DataSource = dt;            ddl_QB1.DataBind();        }    }
查看完整描述

1 回答

?
素胚勾勒不出你

TA贡献1827条经验 获得超9个赞

以下 3 处更改将提供所需的结果。

首先 - AutoPostBack 应在下拉元素上设置为 false,因为即使在您单击按钮之前,这也会导致回发。

第二 - 删除 if(!Page.IsPostback) 中的当前代码。此代码不是必需的。此外,此代码未设置 ddl_QB1 和 ddl_QB2 的 DataTextField 和 DataValueField 属性。

第三 - 将方法调用 LoadQuarterbacks() 放在 if(!Page.IsPostback) 中。我们不必在每个请求上为 ddl_QB1 和 ddl_QB2 绑定这些值。

如果下拉控件需要刷新,则在按钮单击结束时绑定 gridview 后调用 LoadQuarterbacks() 方法。这样您就可以在重新绑定之前从下拉列表中捕获选定的值。重新绑定 DropDowns 会导致它们丢失选定的值。


查看完整回答
反对 回复 2021-06-20
  • 1 回答
  • 0 关注
  • 135 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信