0
我正在使用asp.net動態數據。我想爲用戶自動填寫一個字段。該文件是可以通過集成Windows身份驗證獲得的用戶名。在asp.net動態數據中,如何使用UIHint創建一個自動填充字段?
我創建了一個字段模板,它可以在插入模式下工作,但是在更新模式下,一旦其他用戶更新記錄,應該保存新的用戶名,但不是。
我正在使用asp.net動態數據。我想爲用戶自動填寫一個字段。該文件是可以通過集成Windows身份驗證獲得的用戶名。在asp.net動態數據中,如何使用UIHint創建一個自動填充字段?
我創建了一個字段模板,它可以在插入模式下工作,但是在更新模式下,一旦其他用戶更新記錄,應該保存新的用戶名,但不是。
我找到了一個解決方案,我想分享它。
申請UIHint
爲實體領域:
[UIHint("UserName")]
public object Name { get; set; }
創造出一個新的FieldTemplate
:爲FieldTemplate
<asp:TextBox ID="TextBox1" runat="server" ReadOnly="true" BorderStyle="None"
BackColor="Transparent" Text='<%# FieldValueEditString %>'></asp:TextBox>
後面的代碼:
public partial class UserName_EditField : FieldTemplateUserControl
{
protected void Page_Load(object sender, EventArgs e)
{
SetUpValidator(RequiredFieldValidator1);
EditFieldTemplateUserControl.InsertHelpText(this);
}
protected override void OnDataBinding(EventArgs e)
{
base.OnDataBinding(e);
TextBox1.Visible = true;
}
protected string UserName
{
get
{
var name = this.Page.User.Identity.Name.ToString();
return name;
}
}
protected override void ExtractValues(IOrderedDictionary dictionary)
{
if (Page.IsPostBack)
{// only assign value when user posts back.
this.TextBox1.Text = this.UserName.ToUpper();
dictionary[Column.Name] = ConvertEditedValue(TextBox1.Text);
}
}
public override Control DataControl
{
get
{
return TextBox1;
}
}
}
請在答案部分張貼的答案,而不是作爲問題的一部分。 – 2011-12-10 01:32:38