在 detailsView 控件中编辑数据时如何获取下拉列表选择的值?

How to get dropdownlist selected value while I am editing data in detailsView control?

我有一个dataAccessLayer.cs,提供编辑、删除、更新方法;一个 GridView 控件来显示有限的数据;一个 DetailsView 控件以显示更多详细信息值。 当我在 gridview 中按下 select 按钮,然后 detailsView 填充详细信息值。 但是我在 codeBehind 上创建了下拉列表以在 detailsView 中显示数据。到目前为止没有错误 但 当我想在 detailView 程序中编辑数据时,不捕获用于编辑的下拉列表值

protected void DetailsView1_DataBound(object sender, EventArgs e)
    {
        if (DetailsView1.CurrentMode == DetailsViewMode.Edit)
        {
            DropDownList dropDownList = (DropDownList)DetailsView1.FindControl("DropDownList2");
            dropDownList.DataSource = ss.DataTableMtd("spGetAllMarkaIdName");
            dropDownList.DataTextField = "Marka_Name";
            dropDownList.DataValueField = "Marka_Name";
            dropDownList.DataBind();
        }
    }

您可以 select 使用下拉控件的值 属性 选择值,它 returns selected 索引的值(文本) ie

string value = dropDownList.SelectedValue;

终于找到答案了

    protected void DetailsView1_ItemUpdating(object sender, DetailsViewUpdateEventArgs e)
    {
        ObjectDataSource2.UpdateParameters["MarkaName"].DefaultValue = 
        ((DropDownList)DetailsView1.FindControl("DropDownList2")).SelectedValue;            
    }