datagrid editcommand set dropdownlist selectedvalue

时间:2012-06-19 18:11:47

标签: asp.net datagrid drop-down-menu

我有一个数据网格,我想在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中调试时,我可以找到Label(lblRole),但不能找到下拉列表。

思想?!?

1 个答案:

答案 0 :(得分: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>