FormView ItemUpdating事件中的Dropdownlist具有旧值

时间:2015-05-02 21:04:23

标签: javascript c# asp.net webforms formview

表单视图中有两个下拉列表,一个用于城市,一个用于州。当州的下拉列表更改时,城市下拉列表将通过javascript更新。如果城市下拉列表从未通过javascript更新,则dlCity.SelectedValue和testVar的值相同。如果城市下拉列表通过javascript更新,则dlCity.SelectedValue和testVar的值不同。 testVar是正确的值。我需要能够获得下拉列表的SelectedValue以及SelectedItem.Text。

protected void fvEvent_ItemUpdating(object sender, FormViewUpdateEventArgs e)
{
    DropDownList dlCity = fvEvent.FindControl("ddlVenueCity") as DropDownList;

    e.NewValues["city"] = dlCity.SelectedItem.Text;
    e.NewValues["cityID"] = dlCity.SelectedValue;

    int testVar = Int32.Parse(Request.Form[dlCity.UniqueID]);
}

1 个答案:

答案 0 :(得分:0)

我认为使用javascript更新webforms元素中的值存在问题。我的解决方案是将值设置为等于以逗号分隔的城市ID和城市名称。然后我只使用Request.Form来获取下拉列表的当前值并进行拆分以获得单独的城市ID和城市名称。

protected void fvEvent_ItemUpdating(object sender, FormViewUpdateEventArgs e)
{
    DropDownList dlCity = fvEvent.FindControl("ddlVenueCity") as DropDownList;
    string cityValue = Request.Form[dlCity.UniqueID];
    string[] cityInfo = cityValue.Split(',');

    e.NewValues["city"] = cityInfo[1];
    e.NewValues["cityID"] = cityInfo[0];
 }