В asp.net динамические данные, как использовать UIHint для создания поля автозаполнения?

#asp.net #templates #field #asp.net-dynamic-data

#asp.net #шаблоны #поле #asp.net-dynamic-data

Вопрос:

Я использую asp.net динамические данные. Есть поле, которое я хочу автоматически заполнять для пользователей. Файл представляет собой имя пользователя, которое можно получить с помощью встроенной проверки подлинности Windows.

Я создал шаблон поля, и он работает в режиме вставки, но в режиме обновления, как только другой пользователь обновляет запись, новое имя пользователя должно быть сохранено, но этого не произошло.

Ответ №1:

Я нашел решение и хочу поделиться им.

Применить 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;
        }
    }
}
  

Комментарии:

1. Пожалуйста, публикуйте ответы в разделе ответы, а не как часть вопроса.