原谅我,但我是一个.NET新手.我知道必须有办法做到这一点.
我有一个详细信息视图,其默认模式设置为Insert.这将用作用户将记录输入数据库的表单.对于其中两个字段,我想用信息预先填充该字段.具体来说,我有一个带有一些函数的vb脚本来查询Active Directory以根据用户ID返回用户的名称.这个脚本工作正常.
我为这个用户名调用函数如下:
<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>
Run Code Online (Sandbox Code Playgroud)
页面加载时,将使用用户标识和用户名填充文本框.
但是,在提交表单时,文本框中的值不会插入到数据库中.
当值来自函数时,如何为字段设置默认值?
谢谢你的帮助!
detailsview不知道要绑定到哪个数据库字段.我会更改模板中的文本框以绑定到字段并在代码中设置默认值:
<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>
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9757 次 |
| 最近记录: |