我一直在寻找一种更好的编码方式来填充所有文本框,并在点击按钮后使其可见,有没有比我在下面描述的更好的方法呢?
场景
我在页面上有一个类似格式的字母,标签上显示地址,姓名等,建议在这个页面上应该能够编辑一些信息。我的想法是保持标签显示信息,但是当点击编辑细节按钮时标签消失,文本框将出现并填充与标签相同的文本,以允许用户编辑细节。
我似乎重复了一行代码,但每次都改变了一件事
页面加载
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
我的代码在许多方面看起来非常重复,我一直在寻找一种更好的编码风格来做到这一点,任何人都可以提出更好的方法吗?我的想法听起来是正确的吗?或者任何人都可以建议更好的方式来实施吗?
谢谢
答案 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()"/>