0

我有一个数据网格,我想在 editcommand 中设置下拉列表的值。

但是,我找不到控件?

这是我的.net:

Private Sub dgUsers_EditCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles dgUsers.EditCommand

    Dim ddl As DropDownList = CType(e.Item.Cells(3).FindControl("ddlRole"), DropDownList)
    'ddl.SelectedValue = "20"

    dgUsers.EditItemIndex = e.Item.ItemIndex
    Call bindUsers()
    dgUsers.ShowFooter = False
End Sub

这是我的html:

<asp:TemplateColumn HeaderText="Role">
            <ItemTemplate>
                <asp:Label ID="lblRole" runat="server" Text='<%# Eval("GetRoleName") %>' />
            </ItemTemplate>
            <EditItemTemplate>
                <asp:DropDownList id="ddlRole" runat="server">
                    <asp:ListItem Text="User" Value="0" />
                    <asp:ListItem Text="WRA" Value="10" />
                    <asp:ListItem Text="Admin" Value="20" />
                </asp:DropDownList>
            </EditItemTemplate>
        </asp:TemplateColumn>

在 EditCommand 中调试时,我可以找到标签 (lblRole),但找不到下拉列表。

想法?!?

4

1 回答 1

1

我刚刚想通了。即使 IDE 不显示该属性,您也可以在设计端设置 SelectedValue:

<EditItemTemplate>
                <asp:DropDownList id="ddlRole" runat="server" SelectedValue='<%# Eval("GetRoleId") %>'>
                    <asp:ListItem Text="User" Value="0" />
                    <asp:ListItem Text="WRA" Value="10" />
                    <asp:ListItem Text="Admin" Value="20" />
                </asp:DropDownList>
            </EditItemTemplate>
于 2012-06-19T18:11:47.733 回答