How to access the TextArea value from a content page

允我心安 提交于 2019-12-31 05:18:12

问题


I have a TextArea control in my content page which is inside an UpdatePanel:

<asp:UpdatePanel runat="server" ClientIDMode="Static" ID="upTaskDetailRight" UpdateMode="Conditional">
    <ContentTemplate>
        <div style="width: 98%; padding-bottom: 10px;" class="brClear">
            <div style="width: 98%; height: 120px;">
                <textarea id="taskNotes" runat="server" class="taskNotes" style="width: 100%; height: 100%; scrollbar-base-color: #A0A0A0; scrollbar-base-color: #A0A0A0; scrollbar-3dlight-color: #A0A0A0; scrollbar-highlight-color: #A0A0A0; scrollbar-track-color: #EBEBEB; scrollbar-arrow-color: #FFFFFF; scrollbar-shadow-color: #A0A0A0; scrollbar-darkshadow-color: #A0A0A0;"></textarea>
            </div>
        </div>
    </ContentTemplate>
</asp:UpdatePanel>

I have a button in my MasterPage which is accessing the TextArea value from the content page and updating the SQL Database:

<asp:Panel ID="Panel93" runat="server" CssClass="navInnerDivContentsTopSubTwo">
    <asp:ImageButton ID="ibSave" ImageUrl="~/theImages/Save.png" runat="server" CssClass="navImages" OnClick="btnSave_Click" />
    <br />
    <asp:LinkButton ID="btnSave" runat="server" Text="Save" ClientIDMode="Static" OnClick="btnSave_Click" CssClass="linkOff" />
</asp:Panel>

Code-behind:

System.Web.UI.HtmlControls.HtmlTextArea lblTDNotes;
lblTDNotes = (System.Web.UI.HtmlControls.HtmlTextArea)ContentMain.FindControl("taskNotes");
protected void btnSave_Click(object sender, EventArgs e)
{
    string strSaveQuery = @"UPDATE HSI.RMMEMO SET MEMO = '" + lblTDNotes.Value + "' WHERE MEMOID = '" + hfMemoIDYT.Value  + "'";
    //MessageBox.Show(strSaveQuery);

    using (SqlConnection scConn = new SqlConnection(strMainConn))
    {
        try
        {
            scConn.Open();
            SqlCommand cmd = new SqlCommand(strSaveQuery, scConn);

            cmd.ExecuteNonQuery();

            Response.Redirect("YourTasks.aspx");
        }
        catch (Exception ce)
        {
        }
    }
}

When the page loads, the TextArea has some pre populated data. If I make any changes to the TextArea data (add or remove text) and hit the SAVE button in the Master page, the lblTDNoted.Value from the strSaveQuery is using the pre populated data and not the updated entry.

How do I get the updated entry from the textarea?


回答1:


Add <triggers> to your UpdatePanel.

<asp:UpdatePanel runat="server" ...>
    <ContentTemplate>
        ...
    </ContentTemplate>
    <Triggers>
        <asp:AsyncPostBackTrigger ControlID="btnSave" EventName="Click" />
    </Triggers>
</asp:UpdatePanel>


来源:https://stackoverflow.com/questions/25530822/how-to-access-the-textarea-value-from-a-content-page

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!