2014-01-31 91 views
0

在我的頁面上我有兩個對象數據源;下拉列表數據綁定,新項目插入detailsview

第一具有一個綁定降downlist,與項目號碼和說明。 第二個具有顯示項目編號的所有內容的綁定詳細信息視圖。

選擇在下拉列表中的項目,導致要顯示的細節,如 預期。當我從詳細信息視圖中插入新記錄時,我想將其添加到下拉列表中並選擇它。

我想只是做一個:

Private Sub dvRecipeItem_ItemInserted(sender As Object, e As DetailsViewInsertedEventArgs) Handles dvRecipeItem.ItemInserted 
    ddRecipeItemNumber.DataBind() 
End Sub 

而且即使數據綁定確實新增項目加載到下拉列表,它不會讓所選擇的值,因此記錄顯示在細節視圖僅僅是取其項數是第一個,因爲它是由項目編號

下令可以有人解釋我如何讓它爲我在第二段中描述的場景工作?

非常感謝。

<asp:DropDownList 
ID="ddRecipeItemNumber" 
runat="server" 
width="600px" 
DataSourceID="EntityDataSource_RecipeItemNumber" 
DataTextField="DisplayName" 
DataValueField="Id" 
AutoPostBack="True" 
OnDataBinding="Page_Load" 
CssClass="cssRecipeItemNumber"> 
</asp:DropDownList> 
<asp:EntityDataSource 
ID="EntityDataSource_RecipeItemNumber" 
runat="server" 
ConnectionString="name=OLTPEntities" 
DefaultContainerName="OLTPEntities" 
EnableFlattening="False" 
EntitySetName="vStd_RefineRecipe" 
EnableDelete="True" 
EnableInsert="True" 
EnableUpdate="True" 
EntityTypeFilter="vStd_RefineRecipe" 
Where="It.Id > 0" 
OrderBy="It.ItemNumber"> 
</asp:EntityDataSource> 

<asp:DetailsView 
ID="dvRecipeItem" 
runat="server" 
AutoGenerateRows="False" 
DataKeyNames="Id" 
DataSourceID="EntityDataSource_RecipeItemDetail" 
OnItemCommand="dvRecipeItem_ItemCommandEventHandler" 
GridLines="None" 
HeaderText="Recipe Detail" 
CssClass="cssDetailsView" 
HeaderStyle-CssClass="header" 
Font-Names="Arial,Sans-Serif" 
Font-Size="11px" 
AlternatingRowStyle-CssClass="alternating" 
CommandRowStyle-CssClass="command" 
FieldHeaderStyle-CssClass="fieldheader"> 
<Fields> 
    <asp:TemplateField HeaderText="Id" SortExpression="Id" InsertVisible="False"> 
    <EditItemTemplate> 
     <asp:Label ID="Label_Id" runat="server" Text='<%# Eval("Id") %>'></asp:Label> 
    </EditItemTemplate> 
    <InsertItemTemplate> 
     <asp:TextBox ID="TextBox_Id" runat="server" Text='<%# Bind("Id") %>'></asp:TextBox> 
    </InsertItemTemplate> 
    <ItemTemplate> 
     <asp:Label ID="Label_Id" runat="server" Text='<%# Bind("Id") %>'></asp:Label> 
    </ItemTemplate> 
    </asp:TemplateField> 
    <asp:TemplateField HeaderText="Item Number" SortExpression="ItemNumber"> 
    <EditItemTemplate> 
     <asp:TextBox ID="TextBox_ItemNumber" runat="server" Text='<%# Bind("ItemNumber") %>'></asp:TextBox> 
    </EditItemTemplate> 
    <InsertItemTemplate> 
     <asp:TextBox ID="TextBox_ItemNumber" runat="server" Text='<%# Bind("ItemNumber") %>'></asp:TextBox> 
    </InsertItemTemplate> 
    <ItemTemplate> 
     <asp:Label ID="Label_ItemNumber" runat="server" Text='<%# Bind("ItemNumber") %>'></asp:Label> 
    </ItemTemplate> 
    </asp:TemplateField> 
    <asp:CommandField ShowDeleteButton="True" ShowEditButton="True" ShowInsertButton="True" InsertText="Insert" UpdateText="Update" DeleteText="Delete" />         
    </Fields>        
    </asp:DetailsView> 
    <asp:EntityDataSource 
     ID="EntityDataSource_RecipeItemDetail" 
     runat="server" 
     ConnectionString="name=OLTPEntities" 
     DefaultContainerName="OLTPEntities" 
     EnableFlattening="False" 
     EntitySetName="RefineRecipe" 
     Where="it.Id = @RecipeId" 
     EnableDelete="True" 
     EnableInsert="True" 
     EnableUpdate="True" 
     EntityTypeFilter="RefineRecipe"> 
     <WhereParameters> 
     <asp:ControlParameter 
     ControlID="ddRecipeItemNumber" 
     DbType="Int32" 
     DefaultValue="1" 
     Name="RecipeId" 
     PropertyName="SelectedValue" /> 
     </WhereParameters> 
     </asp:EntityDataSource> 

Private Sub dvRecipeItem_ItemInserted(sender As Object, e As  DetailsViewInsertedEventArgs) Handles dvRecipeItem.ItemInserted 

ddRecipeItemNumber.DataBind() 
ddRecipeItemNumber.Items.FindByValue(DirectCast(dvRecipeItem.FindControl("TextBox_ItemNumber"), TextBox).Text).Selected = True 

End Sub 
+0

凡在HTML文件是dvRecipeItem – pankeel

回答

0

WIRTE這樣的代碼::

Private Sub dvRecipeItem_ItemInserted(sender As Object, e As DetailsViewInsertedEventArgs) Handles dvRecipeItem.ItemInserted 

    ddRecipeItemNumber.DataBind() 
    ddRecipeItemNumber.Items.FindByValue(e.Values["ItemNumber"].ToString()).Selected = true; 

End Sub 

*字符串val爲一個新的字符串插入

+0

你試試我的代碼遵循此鏈接:http ://forums.asp.net/t/1004541.aspx – pankeel

+0

不知道該怎麼做。這是在插入模板

+0

我應更換(串VAL)其中: TextBox_ItemNumber –