【问题标题】:Form Text Boxes Fail to Update With Client Input After Their Value Is Set Server Side设置服务器端值后,表单文本框无法使用客户端输入进行更新
【发布时间】:2013-12-01 18:57:58
【问题描述】:

标题
这段代码说明了我的困惑:

Private Sub loadCss()
    textbox.Value = method.getCSS("existingCssFile.css")
End Sub

这个方法,loadCss(),在页面加载时发生。它的目的是用指定的 css 文件中的所有内容填充一个文本区域,该区域分别具有 runat="server"id="textBox"

Protected Sub saveCss_Click(sender As Object, e As EventArgs) Handles saveCss.Click
    method.saveCSS(textbox.Value, "fileToOverwrite.css")
End Sub

当单击asp:Button 时,会触发后一种方法。但是,textbox 的字符串值与它的初始值相同,不考虑客户端添加或版本;一旦文本框收到它的值,它就不会改变服务器端。

我曾尝试从 textbox.value 切换到 textbox.InnerHTML,但尽管两者结合了很多,但无济于事。

我现在知道解决方案,但谁能解释一下为什么会发生这种情况?

【问题讨论】:

  • 你在IsPostBack = False条件中调用了loadCss()函数吗?
  • 不,我没有。坦率地说,我不知道该怎么做

标签: html asp.net vb.net visual-studio


【解决方案1】:

好的,您需要在 page_load 事件中调用您的方法,并且必须检查此页面的回发是否为假。

请尝试以下代码:

Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load
        If IsPostBack = False Then
            loadCss()
        End If
    End Sub

【讨论】:

  • 快问;条件调用必须page_load类中吗?
  • 它可以在任何你调用loadCss()的地方,只要它包含了loadCss()
  • 如果此page_load 事件在您的代码隐藏文件中不可用,则只需在您的代码隐藏文件中添加上述代码即可。
  • 你能告诉我调用 loadCss() 函数的代码吗?
【解决方案2】:

在调用 loadCss() 的方法中,将其括在:

if(!IsPostBack)
{
    loadCss();
}

希望这会有所帮助!

编辑:哎呀,我没有看到你的评论 Bhavesh,对不起! :/

这是 VB 等价物(我认为,不是 VB 专家)。把它放在你调用loadCss()的方法中;

If Not IsPostBack
    loadCss()
End If

【讨论】:

  • 已编辑以包含 VB。
猜你喜欢
  • 1970-01-01
  • 2011-06-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多