/ / Come specificare un valore predefinito per un campo in una modalità di inserimento vista dettagli .NET - asp.net

Come specificare un valore predefinito per un campo in una vista dettagli .NET modalità di inserimento - asp.net

Perdonami, ma sono un novizio di .NET. So che deve esserci un modo per farlo.

Ho una vista dettagli con la sua modalità predefinita impostatainserire. Questo deve essere usato come modulo per gli utenti per inserire record in un database. Per due dei campi, voglio precompilare il campo con le informazioni. In particolare, ho uno script vb con alcune funzioni per interrogare Active Directory per restituire il nome dell'utente in base al suo ID utente. Questo script funziona bene.

Chiamo le funzioni per il nome utente in questo modo:

<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>

Quando la pagina viene caricata, questo popola le caselle di testo con l'id utente e il nome utente.

Ma quando il modulo viene inviato, i valori nelle caselle di testo non vengono inseriti nel database.

Come posso impostare i valori predefiniti per i campi quando i valori provengono da funzioni?

Grazie per qualsiasi aiuto!

risposte:

5 per risposta № 1

La visualizzazione dettagli non sa a quale campo del database associarsi. Vorrei modificare la casella di testo nel modello per associarla a un campo e impostare il valore predefinito nel codice:

<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