/ / Jak określić wartość domyślną pola w trybie wstawiania widoku szczegółów platformy .NET - asp.net

Jak określić wartość domyślną dla pola w trybie wstawiania widoku szczegółów .NET - asp.net

Wybacz mi, ale jestem nowicjuszem .NET. Wiem, że musi być na to sposób.

Mam widok szczegółów z ustawionym trybem domyślnymwstawić. Ma być używany jako formularz dla użytkowników do wprowadzania rekordów do bazy danych. W przypadku dwóch pól chcę wstępnie wypełnić pole informacjami. W szczególności mam skrypt vb z kilkoma funkcjami do wysyłania zapytań do usługi Active Directory w celu zwrócenia nazwy użytkownika na podstawie jego identyfikatora użytkownika. Ten skrypt działa dobrze.

Wołam funkcje dla nazwy użytkownika w ten sposób:

<InsertItemTemplate>
<asp:TextBox ID="txtUserID" runat="server" Text="<%#CurrentUID() %>"></asp:TextBox>
</InsertItemTemplate>
<InsertItemTemplate>
<asp:TextBox ID="txtUserName" runat="server" Text="<%# GetUserName(CurrentUID()) %>"></asp:TextBox>
</InsertItemTemplate>

Po załadowaniu strony wypełnia to pola tekstowe identyfikatorem użytkownika i nazwą użytkownika.

Ale po przesłaniu formularza wartości w polach tekstowych nie są wstawiane do bazy danych.

Jak mogę ustawić wartości domyślne dla pól, gdy wartości pochodzą z funkcji?

Dzięki za pomoc!

Odpowiedzi:

5 dla odpowiedzi № 1

Widok szczegółów nie wie, z którym polem bazy danych się powiązać. Zmieniłbym pole tekstowe w szablonie, aby powiązać z polem i ustawić domyślną wartość w kodzie:

<InsertItemTemplate>
<asp:TextBox ID="txtUserID" runat="server" Text="<%#Bind("UserIDField") %>"></asp:TextBox>
</InsertItemTemplate>
<InsertItemTemplate>
<asp:TextBox ID="txtUserName" runat="server" Text="<%#Bind("UserNameField") %>"></asp:TextBox>
</InsertItemTemplate>

Protected Sub DetailsView_DataBound(ByVal sender As Object, ByVal e As System.EventArgs) Handles DetailsView.DataBound

If DetailsView.CurrentMode = DetailsViewMode.Insert Then

DirectCast(DetailsView.FindControl("txtUserID"), TextBox).Text=CurrentUID()
DirectCast(DetailsView.FindControl("txtUserName"), TextBox).Text=GetUserName(CurrentUID())

End If

End Sub