回发后丢失detailsview下拉列表值

本文关键字:detailsview 下拉列表 | 更新日期: 2023-09-27 18:08:51

我在detailsview中使用下拉列表,它填充得很好,但是当我做插入时有回发,所以我试图再次绑定DDL,但值不知何故丢失。

我的aspx

:

<asp:UpdatePanel ID="InsertPanel" runat="server" UpdateMode="Conditional" >
    <ContentTemplate>
        <asp:Table ID="Table1" runat="server" CellSpacing="0" CellPadding="0">
            <asp:TableHeaderRow SkinID="tableheaderrowSkin">
            </asp:TableHeaderRow>
            <asp:TableRow>
                <asp:TableCell BackColor="DarkGray" BorderColor="DarkGray" BorderWidth="1" Width="300">
                    <asp:DetailsView ID="DetailsView1" runat="server" AutoGenerateRows="False" DataKeyNames="nFuturesId"
                            DataSourceID="FutureCommodityODS" DefaultMode="Insert" OnItemInserting="DetailsView1_ItemInserting"
                            SkinID="detailsviewSkin" OnItemInserted="DetailsView1_ItemInserted" EnableModelValidation="True">
                            <BrummerComp:SortableDropDownList ID="DropDownListFuturesInsert" runat="server"  SkinID="BCdropdownlistSkin">
                            </BrummerComp:SortableDropDownList>  
                    </asp:DetailsView>
                </asp:TableCell>
            </asp:TableRow>
        </asp:Table>
    </ContentTemplate>
</asp:UpdatePanel>
我在Page_Load: 中填充了DDL
protected new void Page_Load(object sender, EventArgs e) {
    if (!IsPostBack) {
        BindDropDownList();
    }
    //DetailsView1.DataBind();
}

BindDropDownList:

private void BindDropDownList()
{
    var paperFutureList = (List<PaperFutures>)DataManager.GetPaperFutures();
    var ddl = (DropDownList)DetailsView1.FindControl("DropDownListFuturesInsert");
    ddl.DataSource = paperFutureList;
    ddl.DataValueField = "nFuturesID";
    ddl.DataTextField = "ShortNameAndFutureNameAndFutureId";
    ddl.DataBind();
}

问题是,当我做插入在我的详细信息视图的DDL是失去了它的值。我试过绑定detailsview,但值不会加载在所有。

方法BindDropDownList第一次在Page_Load中工作得很好。我也试过把methodcall放在!IsPostBack之外来填充它,但这也不起作用。

我已经检查了GetPaperFutures(),它每次都能很好地工作,所以问题是在其他地方,但我找不到在哪里。

回发后丢失detailsview下拉列表值

我也面临着类似的问题。最终,我找到了解决办法!

在page_preender事件中调用BindDropDownList()。

运行成功!