C# 在Gridview中获取Dropdownlist的SelectedValue

C# 在Gridview中获取Dropdownlist的SelectedValue,c#,asp.net,gridview,C#,Asp.net,Gridview,在Gridview中创建尚未更新其职务的用户列表。我希望列表中有一个下拉列表,其中包含所有可能的标题选择,并在下拉列表旁边有一个按钮。然后,一个人可以进来,在下拉列表中更改标题,点击按钮,将其更新并从列表中删除 所有这些都是我希望看到的,但我正试图找出如何将该行中下拉框的SelectedValue传递给OnClick后面的代码。正如您在下面看到的,我能得到的最接近的结果是在CommandArgument中传递行号。有什么建议可以让我在OnClick中获得特定行下拉列表的SelectedValue

在Gridview中创建尚未更新其职务的用户列表。我希望列表中有一个下拉列表,其中包含所有可能的标题选择,并在下拉列表旁边有一个按钮。然后,一个人可以进来,在下拉列表中更改标题,点击按钮,将其更新并从列表中删除

所有这些都是我希望看到的,但我正试图找出如何将该行中下拉框的SelectedValue传递给OnClick后面的代码。正如您在下面看到的,我能得到的最接近的结果是在CommandArgument中传递行号。有什么建议可以让我在OnClick中获得特定行下拉列表的SelectedValue吗

编辑:也许我应该使用onrow命令而不是OnClick

目前看起来是这样的:

John Doe | DropdownList  Button
Jane Doe | DropdownList  Button
Joe Doe | DropdownList  Button
Jeff Doe |  DropdownList  Button
ASPX

解决方案:我在下面批准的答案在我添加后对我有效!i返回到页面\ u加载

protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            bindTitleView();
        }

在btn\u中,单击编写以下代码

protected void btn_Clicked(object sender, EventArgs e)
{

    Button Sample = sender as Button;
    GridViewRow row = Sample.NamingContainer as GridViewRow;
    DropDownList drp = row.FindControl("TitleList") as DropDownList;
    //Now use drp.SelectedValue
    }
}
如果这不是您想要的,请告诉我。

您可以这样做:

protected void btn_Clicked(object sender, EventArgs e)
{
    int line = ((GridViewRow)((Button)sender).Parent.Parent).RowIndex;
    DropDownList drp = ((DropDownList)TitleView.Rows[line].FindControl("TitleList"));
    //Continue the method
}

当我尝试这个方法时,无论我在下拉框中选择什么,每次结果都是2。2恰好是下拉框中的第一个值,但即使我选择了不同的选择,该值始终为2。有什么想法吗?我知道了,当我绑定bindTitleView()时,我的页面加载中缺少了if(!IsPostBack)。哎呀!!谢谢你的帮助。
protected void btn_Clicked(object sender, EventArgs e)
{

    Button Sample = sender as Button;
    GridViewRow row = Sample.NamingContainer as GridViewRow;
    DropDownList drp = row.FindControl("TitleList") as DropDownList;
    //Now use drp.SelectedValue
    }
}
protected void btn_Clicked(object sender, EventArgs e)
{
    int line = ((GridViewRow)((Button)sender).Parent.Parent).RowIndex;
    DropDownList drp = ((DropDownList)TitleView.Rows[line].FindControl("TitleList"));
    //Continue the method
}