ASP.Net-详细视图中EditItemTemplate中使用的DropDownList

ASP.Net-详细视图中EditItemTemplate中使用的DropDownList,asp.net,detailsview,edititemtemplate,Asp.net,Detailsview,Edititemtemplate,我对DetailsView有问题。我需要使用DropDownList来更新数据库中的值。我在不同的表中得到了这些值。我使用了ObjectDataSource,它工作正常。我的问题是当我无法在设计器中绑定SelectedValue时,如何使用DropDownList,因为它丢失了。我发现了很多类似的建议 <asp:DropDownList ID="ddlEditPermissions" runat="server" DataSource='<%#getPermissions() %&g

我对DetailsView有问题。我需要使用DropDownList来更新数据库中的值。我在不同的表中得到了这些值。我使用了ObjectDataSource,它工作正常。我的问题是当我无法在设计器中绑定SelectedValue时,如何使用DropDownList,因为它丢失了。我发现了很多类似的建议

<asp:DropDownList ID="ddlEditPermissions" runat="server" DataSource='<%#getPermissions() %>' SelectedValue='<%# Bind("PermissionID") %>'/>
以下是我的详细信息:

<asp:DetailsView ID="DetailsView2" runat="server" AutoGenerateRows="False" DataSourceID="ODS_UzivatelDetail" DataKeyNames="UserId">
    <Fields>
        <asp:BoundField DataField="UserId" HeaderText="UserId" SortExpression="UserId" ReadOnly="true" />
        <asp:BoundField DataField="UserName" HeaderText="UserName" SortExpression="UserName" />
        <asp:TemplateField HeaderText="PermissionID" SortExpression="PermissionID">
            <EditItemTemplate>
                <asp:DropDownList ID="ddlEditPermissions" runat="server" DataSource='<%# getPermissions() %>'/>
            </EditItemTemplate>
            <ItemTemplate>
                <asp:Label ID="lPermissions" runat="server" Text='<%# Bind("PermissionID") %>'></asp:Label>
            </ItemTemplate>
        </asp:TemplateField>
        <asp:CommandField ShowEditButton="True" />
    </Fields>
</asp:DetailsView>

数据库表:

用户

  • 用户标识-int
  • 权限\u ID-int
  • 用户名-nvarchar(20)
权限

  • 权限\u ID-int
  • 许可证名称-nvarchar(20)
我正在使用VS2012.NETFramework 4.5。。。
有人能帮我吗?

这是您选择下拉列表值的方法:

if (ddlList.Items.FindByValue(<string type value you want to select from dropdownlist>) != null)
{
cboRegion.SelectedValue = ""; //Value you want to select if you are using Value attribute to select
}

您可以使用
FindByValue
FindByText
方法从DropdownList中查找值,如下所示:

if (ddlList.Items.FindByText(<string type value you want to select from dropdownlist>) != null)
{
cboRegion.SelectedText = ""; //Value you want to select if you are using Value attribute to select
}
if(ddlist.Items.FindByText()!=null)
{
cboRegion.SelectedText=“;//如果使用Value属性进行选择,则要选择的值
}

已解决。。。这真的很简单。谢谢您抽出时间;)

我将该键添加到DetailView中ItemUpdate事件中的键中

protected void dtlvUserDetail_ItemUpdating(object sender, DetailsViewUpdateEventArgs e)
        {
            DropDownList ddlEditPermissions= (DropDownList)dtlvUzivatel.FindControl("ddlEditPermissions");
            e.Keys["permission"] = ddlEditPermissions.SelectedValue;                
        }

请你详细说明你的问题,以便其他人能更好地帮助你。“你到底想做什么?”哈里希巴特我试着说得更具体些。英语不是我最好的技能:)根据我在下面的理解,我已经发布了我的答案,让我知道它是否适合你。你需要获得DropdownList的引用,以便通过下面的方法选择值,为此你可以使用下面的代码:
DropdownList ddList=(DropdownList)DetailsView2.Rows[i].FindControl(“DDLEDITPORCESSIONS”)现在您可以使用DropdownList对象进行选择,并使用下面的方法取消选择值。@HarishBhatt Thx供您参考。。。我尽量说得更具体一点。我想使用该DropDownList SelectedValue属性作为ObjectDataSource UpdateMethod的参数。对于SelectedValue='',是否为DropDownList调用了DataBind()?SelectedValue=''
存在问题。它在页面设计代码中不能作为DropDownList的属性使用,我真的不知道为什么。所以我必须找到一个不同的方法。就这么简单。
string strValue = ddlList.Items.FindByValue("India").ToString();
if (strValue  != null)
{
cboRegion.SelectedValue = strValue ;
}
if (ddlList.Items.FindByText(<string type value you want to select from dropdownlist>) != null)
{
cboRegion.SelectedText = ""; //Value you want to select if you are using Value attribute to select
}
protected void dtlvUserDetail_ItemUpdating(object sender, DetailsViewUpdateEventArgs e)
        {
            DropDownList ddlEditPermissions= (DropDownList)dtlvUzivatel.FindControl("ddlEditPermissions");
            e.Keys["permission"] = ddlEditPermissions.SelectedValue;                
        }