vb.net关于如何填充所有文本框并在单击按钮后使其可见的想法

时间:2011-03-10 00:19:34

标签: asp.net vb.net coding-style

我一直在寻找一种更好的编码方式来填充所有文本框,并在点击按钮后使其可见,有没有比我在下面描述的更好的方法呢?

场景

我在页面上有一个类似格式的字母,标签上显示地址,姓名等,建议在这个页面上应该能够编辑一些信息。我的想法是保持标签显示信息,但是当点击编辑细节按钮时标签消失,文本框将出现并填充与标签相同的文本,以允许用户编辑细节。

我似乎重复了一行代码,但每次都改变了一件事

页面加载

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 :(得分:0)

您是否考虑过在客户端激活输入?你可以使用像这样的jquery插件 http://www.appelsiini.net/projects/jeditable

你仍然需要在VB中进行一些设置。

答案 1 :(得分:0)

您可以编写一个方法来执行脏工作,然后只需调用它。你甚至可以有一个文本框列表:

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

答案 2 :(得分:0)

另一种策略是在webform中使用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()"/>