繁体   English   中英

在更新时从GridView内的下拉列表中获取选定的值

[英]Getting a selected value from the drop down list inside a GridView on Update

我有一个GridView,每一行都有“编辑”按钮。 单击后,其中一列会变成一个下拉列表,用户可以在其中选择值。 “编辑”按钮变为“更新”-非常简单的通常情况。

现在,单击“更新”后,我似乎无法获取所选的下拉列表。 这是我的代码:

    protected void gv_UpdateRow(string arg)
{
    int currentIndex = gv.EditIndex;
    gv.EditIndex = -1;

    GridViewRow currentRow = gv.Rows[currentIndex];

    try
    {
      string value2 = ((DropDownList)currentRow.FindControl("ddlValueTwo")).SelectedItem.ToString();

    }
    catch
    {
        Response.Write("error");
    }


    BindGridView(); 
}

因此,基本上,程序执行总是以catch语句结束。 我已检查并找到下拉列表,但未找到所选项目时会引发异常。

是什么赋予了?

我使用c#asp.net 2.0 Web表单

看起来是一个数据绑定错误,您正在尝试访问尚不存在的数据...

得到它了!

它是IsPostback,我很想念它,所以gridview在每次页面加载时都会反弹,并且由于下拉列表位于网格内部,因此数据丢失了。

但是,我在这里忘记提及的一件事是,所有这些代码都位于用户控件(ascx文件)中,并且IsPostBack属性适用于页面而不是控件,在我的情况下这是没有用的。 例如,在我的情况下,我手动添加了控件,因此IsPostback始终为true,因此为避免此问题,我必须实现基于会话的解决方案。 希望这对某人有帮助。

也有usercontrol.IsPostBack属性,但是它没有达到预期的效果,也许他们正确地使用了3.0

首先想到的是,您可能应该执行SelectedItem.Value而不是SelectedItem.ToString()。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM