vb.net идеи о том, как заполнить все текстовые поля и сделать их видимыми после нажатия кнопки - PullRequest
0 голосов
/ 10 марта 2011

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

Сценарий

У меня есть буквенный формат на странице с метками, отображающими адрес, имя и т. Д., И было рекомендовано, чтобы на этой странице была возможность редактирования некоторой информации. У меня была идея сохранить метки, отображающие информацию, но затем, когда нажата кнопка «Редактировать детали», метки исчезнут, появятся текстовые поля, заполненные тем же текстом, что и метка, чтобы позволить пользователю редактировать детали.

Кажется, я повторяю строки кода, но каждый раз меняю одну вещь

при загрузке страницы

Dim Sname As String = Request.QueryString("Name")
lblStuName.Text = Sname
tbStuName.Text = Sname
tbStuName.visible=false

Dim Saddress As String = Request.QueryString("Address")
lblAddress.Text = Saddress
tbAddress.Text = Saddress
tbAddress.visible = false

и т.д ...

на кнопке редактирования

tbStuName.visible=true
tbAddress.visible = true

и т.д ..

на кнопке сохранения

 sqlStatement = "UPDATE StuTable SET Name = '" & lblStuName.Text & "', Address = '" & lblAddress.Text

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

Спасибо

Ответы [ 3 ]

0 голосов
/ 10 марта 2011

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

Private _txtBoxes as Generic.List(Of TextBox)
Private Sub DoSetup(value as string, txt as TextBox, lbl as Label)
  txt.Text = value
  lbl.Text = value
  txt.Visible = false
  _txtBoxes.Add(txt)
End Sub

Вызов (при загрузке страницы):

DoSetup(Request.Querystring("Name"),txtStuName,lblStuName)
DoSetup(Request.Querystring("Address"),txtAddress,lblAddress)

Настройка для отображения (при кнопке редактирования):

For Each txt as TextBox in _txtBoxes
   txt.Visible = True
Next
0 голосов
/ 10 марта 2011

Альтернативной стратегией было бы использование javascript в веб-форме для переключения элементов управления:

В разделе страницы:

<script lang="javascript">
   function DoEditClick() {
      document.getElementById("txtStuName").style.visibility = "visible";
      document.getElementById("lblStuName").style.visibility = "hidden";
      document.getElementById("txtAddress").style.visibility = "visible";
      document.getElementById("lblAddress").style.visibility = "hidden";
      ...
   }
</script>

Разметка для кнопки редактирования будет выглядеть примерно так:

<asp:Button runat="server" id="btnEdit" text="Edit" OnClientClick="DoEditClick()"/>
0 голосов
/ 10 марта 2011

Рассматривали ли вы активацию входов на стороне клиента? Вы можете использовать плагин jquery, такой как этот http://www.appelsiini.net/projects/jeditable

Вам все равно придется выполнить некоторые настройки в вашем VB.

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