2009-08-18 4 views
1

Мне нужно выставить некоторые поля ввода, основываясь на свойствах, которые я нахожу для определенных типов в сборке.Создание динамического интерфейса с C#?

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

Если кто-нибудь знает о хорошем способе делать что-то подобное, я был бы признателен за помощь.

Создать контроль ввода соответственно и просто добавить элемент управления в какой-либо контейнер div? Я не уверен, будет ли это более сложным. Мне нужно каким-то образом добавить классы css в элементы управления, поскольку я их создаю, чтобы они были хорошо размещены; что может показаться сложным.

+1

На каком серверном языке вы работаете? – Sampson

+0

Я работаю с языком C# ........ – topwik

+0

@Jonathan Sampson: Согласен. Любой серверный язык будет делать то, что хочет сделать @towps ... но как на 100% зависит от языка. – Randolpho

ответ

0

Я закончил работу с jQuery.

Я выложил простую разметку с основным расположением, которое мне понадобится.

Для создания элементов управления динамически, я сделал все это в javascript, используя методы jQuery.

Это, конечно, требует, чтобы вы возвращали некоторые данные, установленные в пользовательский интерфейс, достаточно разумно, чтобы отображать его.

+0

Конечно, хотя это не в C#, я нашел, что это лучший способ. – topwik

1

Все это звучит как стандартная разработка asp.net. Любой хороший учебник должен помочь вам. Для управления сервером asp вы используете свойство CssClass для установки класса для элемента управления.

Вот asp.net tutorial из школ W3C.

+0

согласился, вся точка веб-программирования заключается в рендеринге динамических элементов управления на основе некоторых условий. –

0

Я предполагаю, что вы будете использовать отражение, чтобы выяснить, что у объекта свойств, то вы бы на основе типа свойства создавали поле ввода. Вам придется динамически создавать элементы управления для обработки ввода кода. Убедитесь, что вы указали этот элемент управления и идентификатор. Вам придется воссоздать эти элементы управления на почте. Это выглядит как динамический редактор свойств. Там могут быть некоторые бесплатные, google для этого.

0

Если пользовательский интерфейс не обязательно должен быть полностью динамическим, вы можете включить все элементы управления в разметку с любыми необязательными значениями, установленными на Visible = "false". Затем выборочно включите соответствующие элементы управления в коде. Например:

Default.aspx

<asp:Button ID="EvenButton" runat="server" Text="Even" Visible="false" /> 
    <asp:Button ID="OddButton" runat="server" Text="Odd" Visible="false" /> 

Default.aspx.cs

protected void Page_Load(object sender, EventArgs e) 
    { 
     String msg = "A message to count"; 

     if (msg.Length % 2 == 0) 
     { 
      // Enable the Even Button 
      EvenButton.Visible = true; 
     } 
     else 
     { 
      OddButton.Visible = true; 
     } 
    } 

Преимущество этого метода заключается в том, что вы можете положить вещи с соответствующим CSS легко в разметке. Если, с другой стороны, ваш интерфейс намного более динамичен, чем это, вам, вероятно, придется прибегать к динамическому созданию элементов управления в коде и добавлению их на страницу через вызовы Controls.Add(). Однако этот способ сложнее компоновки. И вам приходится иметь дело с такими вещами, как повторная проводка любых обработчиков событий при каждой обратной передаче.

Надеюсь, что это поможет.

Смежные вопросы