Я нахожусь в тупике. У меня есть две формы формы для вставки новых записей. В форме 1 все работает, и все столбцы обновляются в таблице SQL Server.ASP.NET VB.NET подробное представление об обновлении одного столбца в базе данных SQL Server
В форме 2 (которая почти такая же, как первая форма, форма 1 имеет фильтр) не обновляет один столбец в той же таблице SQL Server, используя тот же код, что и в форме 1. Я не знаю Зачем. Когда я разбиваю код позади в форме 2, в раскрывающемся списке появляется правильное значение. Выбранное значение, но когда я нажимаю кнопку вставки, это значение не вставлено.
Вот разметка для формы 1: за
<asp:TemplateField HeaderText="Water Body Name*">
<ItemTemplate>
<asp:Label ID="lblStreamName" runat="server" Text='<%# Eval("LLIDNUM")%>' Visible = "true"></asp:Label>
</ItemTemplate>
<InsertItemTemplate>
<asp:DropDownList ID="ddCatalogName" runat="server" AutoPostBack="True"
DataSourceID="GetCatalogNames" DataTextField="StreamName"
DataValueField="LLIDNUM" AppendDataBoundItems="true">
<asp:ListItem Text="Select" Value="" />
</asp:DropDownList>
<asp:ObjectDataSource ID="dsWaterBody" runat="server" TypeName="StreamName"
SelectMethod="GetCatalogNames">
<SelectParameters>
<%--<asp:Parameter Name="HatcheryCodetName" Type="string" />--%>
<asp:ControlParameter Name="HatcheryCodePlant" Type="string" ControlID="ddPlantingHatchery" PropertyName="Selectedvalue"/>
</SelectParameters>
</asp:ObjectDataSource>
<asp:RequiredFieldValidator ID="RequiredFieldValidator3" runat="server"
ControlToValidate="ddCatalogName" ErrorMessage="Please Enter Water Body Name"
Display="Dynamic" ForeColor="Red">*
</asp:RequiredFieldValidator>
</InsertItemTemplate>
</asp:TemplateField>
Код:
Private Sub DetailsView1_ItemInserting(sender As Object, e As DetailsViewInsertEventArgs) Handles dvSMasterCurrentYear.ItemInserting
Try
Dim view As DetailsView = DirectCast(sender, DetailsView)
Dim username As String = System.Web.HttpContext.Current.User.Identity.Name
Dim ddCatNum As DropDownList = TryCast(view.FindControl("ddCatalogName"), DropDownList)
e.Values.Add("LLIDNUM", ddCatNum.SelectedValue)
Page.Validate()
'show a message or throw an exception
If Not Page.IsValid Then
End If
Catch ex As Exception
Throw New Exception(ex.Message)
End Try
End Sub
Вот код разметки для формы 2:
<asp:TemplateField HeaderText="Water Body Name*">
<ItemTemplate>
<asp:Label ID="lblStreamName" runat="server" Text='<%# Eval("LLIDNUM")%>' Visible = "true"></asp:Label>
</ItemTemplate>
<InsertItemTemplate>
<asp:DropDownList ID="ddCatalogName" runat="server" AutoPostBack="True"
DataSource='<%# GetCatalogNames()%>' DataTextField="StreamName" DataValueField="LLIDNUM"
AppendDataBoundItems="true">
<asp:ListItem Text="Select" Value="" />
</asp:DropDownList>
<asp:RequiredFieldValidator ID="RequiredFieldValidator3" runat="server"
ControlToValidate="ddCatalogName" ErrorMessage="Please Enter Water Body"
Display="Dynamic" ForeColor="Red">*
</asp:RequiredFieldValidator>
</InsertItemTemplate>
</asp:TemplateField>
кодекса позади для формы 2 :
Private Sub dvNewStockingWater_ItemInserting(sender As Object, e As DetailsViewInsertEventArgs) Handles dvNewStockingWater.ItemInserting
Try
Dim view As DetailsView = DirectCast(sender, DetailsView)
Dim ddCatNum As DropDownList = TryCast(view.FindControl("ddCatalogName"), DropDownList)
e.Values.Add("LLIDNUM", ddCatNum.SelectedValue)
Catch ex As Exception
Throw New Exception(ex.Message)
End Try
End Sub
Все остальные поля в обеих формах обновляются правильно. Источник данных настроен одинаковым для обеих форм, каждый из которых настроен для вставки и обновления. Что мне не хватает?
спасибо.