单击按钮后更新TextBox

时间:2014-07-23 18:41:41

标签: c# asp.net

我有TextBox

<asp:TextBox id="locSelectedCameraGroupName" runat="server" ></asp:TextBox>

我有这个后端代码:

protected void btnCameraGroup_ServerClick(object sender, EventArgs e)
{
    locSelectedCameraGroupName.Text = "test string!";
}

点击按钮后调用此方法:

<asp:linkbutton id="btnCameraGroup" runat="server" onclick="btnCameraGroup_ServerClick" onclientclick="ShowCameraGroupPopup()"
    style="font-size: 1.2em; text-decoration: none; cursor: pointer; background-color:grey; "> 
<!-- TODO:  Make button have round corners...css? -->
</asp:linkbutton>

但是,文本不会更新。这是一个用户控件。到达该行(根据我的调试器)。当我将该行移动到我的页面加载时,它可以工作。我在做什么问题?

以下方法ShowCameraGroupPopup只显示/隐藏了一些我不认为与此问题有多大关系的标记,但不管怎样它仍然存在:

function ShowCameraGroupPopup() {
    $('#<%=waitIcon.ClientID%>').show();
    $('#<%=divMainContent.ClientID%>').hide();
    $("#divCameraGroupPopup").modal("show");
    return true;
}

这是点击链接按钮后的流程:

  1. Page_Load hit(回发后)
  2. btnCameraGroup_ServerClick hit
  3. 选项卡名称=第二个选项卡(这是我想要的信息,但由于某种原因, 文字未更新)

2 个答案:

答案 0 :(得分:1)

我需要一个带有触发器(AsyncPostBackTrigger)的TextBox周围的UpdatePanel(和ContentTemplate),如下所示:

<asp:UpdatePanel id="groupNamePanel" runat="server" updatemode="Conditional"> 
     <Triggers>
        <asp:AsyncPostBackTrigger ControlID="btnCameraGroup" />
    </Triggers>
    <ContentTemplate>
        <asp:TextBox id="locSelectedCameraGroupName" runat="server" ></asp:TextBox>
    </ContentTemplate>
</asp:UpdatePanel>

答案 1 :(得分:0)

  

如果您的代码中有Page_Load()事件,请更改Page_Load()内容,如下所示:

private void Page_Load()
{
    if (!Page.IsPostBack)
    {
        //copy previous page load codes here
    }
}