我目前有兩個下拉列表,它們填充了數(shù)據(jù)庫中的名稱。我想要做的是選擇一個播放器,然后單擊按鈕,將表中的數(shù)據(jù)填充到 gridview 中。現(xiàn)在我只是收到一條“沒有返回?cái)?shù)據(jù)”的消息,我不知道為什么。 <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貢獻(xiàn)1827條經(jīng)驗(yàn) 獲得超9個贊
以下 3 處更改將提供所需的結(jié)果。
首先 - AutoPostBack 應(yīng)在下拉元素上設(shè)置為 false,因?yàn)榧词乖谀鷨螕舭粹o之前,這也會導(dǎo)致回發(fā)。
第二 - 刪除 if(!Page.IsPostback) 中的當(dāng)前代碼。此代碼不是必需的。此外,此代碼未設(shè)置 ddl_QB1 和 ddl_QB2 的 DataTextField 和 DataValueField 屬性。
第三 - 將方法調(diào)用 LoadQuarterbacks() 放在 if(!Page.IsPostback) 中。我們不必在每個請求上為 ddl_QB1 和 ddl_QB2 綁定這些值。
如果下拉控件需要刷新,則在按鈕單擊結(jié)束時綁定 gridview 后調(diào)用 LoadQuarterbacks() 方法。這樣您就可以在重新綁定之前從下拉列表中捕獲選定的值。重新綁定 DropDowns 會導(dǎo)致它們丟失選定的值。
- 1 回答
- 0 關(guān)注
- 175 瀏覽
添加回答
舉報(bào)
0/150
提交
取消