0
<asp:TemplateField HeaderText="Team Leader">
    <ItemTemplate>
        <asp:Label ID="gvuser_teamleader" runat="server" Text='<%# Bind("TeamLeaderID")  %>'></asp:Label>
    </ItemTemplate>
    <EditItemTemplate>
        <asp:TextBox ID="txtuserteamleader" runat="server" Width="100px" Text='<%# Eval("TeamLeaderID") %>' CssClass="textboxstyle roundedcorner aligncenter gradientskyblue"></asp:TextBox>
        <asp:ListBox ID="listboxuserteamleader" runat="server" Width="110px" AutoPostBack="true" OnSelectedIndexChanged="listboxuserteamleader_SelectedIndexChanged" CssClass="textboxstyle roundedcorner aligncenter gradientskyblue"></asp:ListBox>
        <asp:DropDownExtender ID="DropDownExtender3" runat="server" TargetControlID="txtuserteamleader" DropDownControlID="listboxuserteamleader"></asp:DropDownExtender>                                    
    </EditItemTemplate>
</asp:TemplateField>

選択したリストボックスのインデックス変更イベントを発生させようとしていて、リストボックスの選択した値をテキストボックスにバインドしようとすると、このエラーが発生します。また、両方のコントロールは gridview 編集項目テンプレート フィールド内にあります。

私のコード:

protected void listboxuserteamleader_SelectedIndexChanged(object sender, EventArgs e)
    {
        foreach (GridViewRow gvr in gvusers.Rows)
        {
            TextBox txtuserteamleader = (TextBox)gvusers.FindControl("txtuserteamleader");
            ListBox listboxuserteamleader = (ListBox)gvusers.FindControl("listboxuserteamleader");
            txtuserteamleader.Text = listboxuserteamleader.SelectedValue.ToString();
        }
    }
4

2 に答える 2

0
try this:

protected void listboxuserteamleader_SelectedIndexChanged(object sender, EventArgs e)
{
    foreach (GridViewRow gvr in gvusers.Rows)
    {
        TextBox txtuserteamleader = (TextBox)gvr.FindControl("txtuserteamleader");
        ListBox listboxuserteamleader = (ListBox)gvr.FindControl("listboxuserteamleader");
        txtuserteamleader.Text = listboxuserteamleader.SelectedValue.ToString();
    }
}

GridView の行を反復処理するときは、その行内のコントロールを検索する必要があるため、各行にこのコントロールがある GridView 全体で検索していたというエラーが発生しました。そのため、連続して検索する必要があります。

于 2013-10-25T05:07:16.880 に答える