如何在EditItemTemplate字段中绑定GridView中的DropDownList?

Jas*_*son 7 asp.net data-binding gridview

这是我在运行时绑定的gridview中的代码:

...
<asp:templatefield>
    <edititemtemplate>
        <asp:dropdownlist runat="server" id="ddgvOpp" />
    </edititemtemplate>
    <itemtemplate>
        <%# Eval("opponent.name") %>
    </itemtemplate>
</asp:templatefield>
...
Run Code Online (Sandbox Code Playgroud)

我想绑定下拉列表"ddgvOpp",但我不知道如何.我应该,但我没有.这就是我所拥有的,但我不断得到一个"对象引用"错误,这是有道理的:

protected void gvResults_RowDataBound(object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowType == DataControlRowType.DataRow) //skip header row
    {
        DropDownList ddOpp = (DropDownList)e.Row.Cells[5].FindControl("ddgvOpp");
        BindOpponentDD(ddOpp);
    }
}
Run Code Online (Sandbox Code Playgroud)

BindOpponentDD()DropDownList填充的位置在哪里.我是不是在正确的活动中这样做了?如果没有,我需要把它放进去?

非常感谢提前...

Jas*_*son 5

好吧,我想我只是愚蠢.我想到了.

在RowDataBound事件中,只需添加以下条件:

if (myGridView.EditIndex == e.Row.RowIndex)
{
     //do work
}
Run Code Online (Sandbox Code Playgroud)