在asp.net动态数据中,如何使用UIHint创建自动填充字段



我使用的是asp.net动态数据。有一个字段我想为用户自动填充。该文件是可以通过集成的windows身份验证获得的用户名。

我创建了一个字段模板,它在插入模式下工作,但在更新模式下,一旦另一个用户更新了记录,就应该保存新用户名,但它没有。

我找到了一个解决方案,我想分享它。

UIHint应用于实体字段:

[UIHint("UserName")]
public object Name { get; set; }

创建一个新的FieldTemplate:

<asp:TextBox ID="TextBox1" runat="server" ReadOnly="true" BorderStyle="None"
BackColor="Transparent" Text='<%# FieldValueEditString %>'></asp:TextBox>

FieldTemplate:的代码隐藏

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

相关内容

  • 没有找到相关文章

最新更新