C# 在ListView的编辑模板中使用DDL

C# 在ListView的编辑模板中使用DDL,c#,asp.net,C#,Asp.net,首先,我对编程非常陌生,所以请容忍我 通过执行以下操作,我能够获得一个下拉列表,以便在插入模板中工作 <InsertItemTemplate> <asp:DropDownList ID="ddlAprt" runat="server" AutoPostBack="True"> <asp:ListItem>Check</asp:ListItem>

首先,我对编程非常陌生,所以请容忍我

通过执行以下操作,我能够获得一个下拉列表,以便在插入模板中工作

<InsertItemTemplate>
<asp:DropDownList ID="ddlAprt" runat="server" AutoPostBack="True">
                            <asp:ListItem>Check</asp:ListItem>
                            <asp:ListItem>Ok</asp:ListItem>
                            <asp:ListItem>Repaired</asp:ListItem>
                            <asp:ListItem>Replaced</asp:ListItem>
                </asp:DropDownList>
</InsertItemTemplate>




protected void ListView1_ItemInserting(object sender, ListViewInsertEventArgs e)
    {
        DropDownList ddlProjectManager = (DropDownList)ListView1.EditItem.FindControl("ddlAprt");
        if (ddlProjectManager != null)
            e.Values["Aprt"] = ddlProjectManager.SelectedValue;
    }
仅供参考,我的数据库将有20+个列。要限制除一个主键之外的所有选择,就要像上面一样使用ddl。所以我一遍又一遍地玩这个代码

因此,我需要相同的功能,但在EditItemTemplete上

我对此有些担心。 当它们第一次插入项时,它们不会更改所有ddl。 因此,ddl中的check项的工作方式类似于空字段。 当他们去编辑时,那些已经离开检查的,需要留在那里。因此,他们不会意外地更新他们没有处理的项目,以检查什么也做不了

用简单的英语,他们将更新他们工作的行。他们将访问该网页。选择“编辑”,然后查找尚未完成的行之一。使用ddl编辑该行,然后单击更新。他们没有处理的行返回到db中,因为它们位于何处。他们工作的那一个被更新为其他的,然后检查

那么我该怎么做呢? 我已经检查了以下网站。下面是一些做类似事情的例子

最后一件事,我使用的是SQL数据源。我真的很想保持这样。 越容易越好

谢谢,
Joe

您应该能够绑定到下拉列表:

<EditItemTemplate> 
<asp:DropDownList ID="ddlAprt" runat="server" AutoPostBack="True" SelectedValue='<%# Bind("Aprt")%>'>
<asp:ListItem>Check</asp:ListItem>
<asp:ListItem>Ok</asp:ListItem>
<asp:ListItem>Repaired</asp:ListItem>
<asp:ListItem>Replaced</asp:ListItem>
</asp:DropDownList>
</EditItemTemplate> 

您也应该能够在插入模板中使用相同的bind语句,这样您就不需要在代码隐藏页面中使用该代码。

谢谢您解决了我的问题,但请知道何时单击“插入”我就可以得到它