第一次 GridVIew 未在 asp.net 的默认下拉列表中显示数据



我不知道为什么它的行为是这样的,实际上我有一个下拉列表,在那里显示一个名称,在 databse 中也是我也应用于 gridview 数据绑定的数据,但第一次没有结果,它没有在下拉列表中显示相同选定值的数据,但如果我喜欢更改并选择列表中的其他项目,然后再次选择下拉列表中显示的值,那么它就可以工作了原因是什么.我在这里发送代码。

aspx.cs

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

 <asp:GridView ID="GridView3" runat="server" AutoGenerateColumns="False" DataKeyNames="ID"
                    DataSourceID="SqlDataSource10" OnRowCommand="GridView1_RowCommand" EmptyDataText="There are no data records to display.">
                    <Columns>
                        <asp:BoundField DataField="ID" HeaderText="ID" ReadOnly="True" Visible="false" SortExpression="ID" />
                        <asp:BoundField  DataField="ClassID" HeaderText="ClassID" SortExpression="ClassID" />
                        <asp:BoundField  DataField="FilePath" HeaderText="File Name" SortExpression="FilePath" />
                        <asp:ButtonField CommandName="Select" HeaderText="Download TimeTable" 
                            ShowHeader="True" Text="Download" />
                    </Columns>
                </asp:GridView>
                <asp:SqlDataSource ID="SqlDataSource10" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString %>"
                    DeleteCommand="DELETE FROM [UploadTabel] WHERE [ID] = @ID"
                    ProviderName="<%$ ConnectionStrings:ConnectionString.ProviderName %>"
                    SelectCommand="SELECT [ID], [ClassID], [FilePath] FROM [UploadTabel] Where ClassID=@Class" >
                    <DeleteParameters>
                        <asp:Parameter Name="ID" Type="Int32" />
                    </DeleteParameters>
                   <SelectParameters>
                        <asp:ControlParameter ControlID="DropDownList1" Name="Class" 
                            PropertyName="SelectedValue" Type="String" />
                    </SelectParameters>
                </asp:SqlDataSource>

.cs

protected void Page_Load(object sender, EventArgs e)
    {
        GridView3.DataBind();
      //  lblSelectedDate.Text = AJAXDatePickerControl1.selectedDate.ToShortDateString();
    }
    protected void Page_PreLoad(object sender, EventArgs e)
    {
        try
        {
          //  GridView1.DataBind();
           GridView3.DataBind();
        }
        catch { }
    }

试试这段代码:

 protected void Page_Load(object sender, EventArgs e)
        {
            if(!IsPostBack)
            {
            GridView3.DataBind();
            }
          //  lblSelectedDate.Text = AJAXDatePickerControl1.selectedDate.ToShortDateString();
        }

最新更新