从 ASP.NET GridView 更新中获取 textarea 中的文本

Posted

技术标签:

【中文标题】从 ASP.NET GridView 更新中获取 textarea 中的文本【英文标题】:Getting text out of textarea from a ASP.NET GridView update 【发布时间】:2011-06-17 20:29:39 【问题描述】:

我疯了。在 GridView 中使用 ASP.NET 以及其他控件,我有以下内容:

<asp:TemplateField HeaderText="Intention">
    <EditItemTemplate>
        <asp:TextBox ID="IntentionInfo" Enabled="true" TextMode="MultiLine" Wrap="true" runat="server" />
    </EditItemTemplate>
    <ItemTemplate>
        <asp:TextBox ID="IntentionInfo" Enabled="false" TextMode="MultiLine" runat="server" />
    </ItemTemplate>
</asp:TemplateField>

我想从这个文本区域中取出值并保存在数据库中。但是,在服务器端,我尝试将值提取出来,如下所示:

string txt = (TextBox)DonationResultsTable.Rows[e.RowIndex].Cells[6].Controls[1].Text;

...但我不断收到发送给客户的值。

我写了这个 javascript,我可以看到 DOM 中的值发生了变化,但服务器仍然保持旧值。

$("textarea").change(function()

    var txt = $(this).val();

    $(this).html(txt).text(txt);
);

所以我猜是 ViewState,但我为这些控件禁用了它,如下所示:

<asp:TextBox ID="IntentionInfo" ViewStateMode="Disabled" Enabled="false" TextMode="MultiLine" runat="server" />

还是什么都没有!有什么想法吗?

【问题讨论】:

数据是否显示在文本框中?我在您的示例代码中没有看到任何绑定。 【参考方案1】:

一种选择可能是使用隐藏字段并在为文本区域更改的文本上更新它。你可以像这样用 jQuery 做到这一点:

$("textarea[id$=tbTest]").change(function () 
                $("input[id$=hdnVal]").val($("textarea[id$=tbTest]").val());
            );

然后在服务器端,您可以检索隐藏字段的值并将其保存到您的数据库中。

【讨论】:

是的,我已经失败了。我想知道是否有“官方”的方式来做这件事。我宁愿把它做​​对,也不愿把它搞砸。 那么,如果您为文本框启用视图状态,它不会保留回发之间的值吗? Viewstate 应该在回发之间保持值。 确实如此。我禁用了 ViewState,因为我想尝试查看 ViewState 是否是未更新 您仍然可以使用 和一个 ,但不要使用以下代码:string txt = (TextBox)DonationResultsTable.Rows[e.RowIndex].Cells[6].Controls [1].正文;试试这个:string txt = ((TextBox)DonationResultsTable.Rows[e.RowIndex].Cells[6].FindControl("IntentionInfo")).Text; 我认为您可能会在每次页面加载时绑定您的 GridView。您应该只将它绑定到 !IsPostBack。在这里查看这篇文章:***.com/questions/4135777/…

以上是关于从 ASP.NET GridView 更新中获取 textarea 中的文本的主要内容,如果未能解决你的问题,请参考以下文章

获取 ASP.NET GridView 单元格值并在 JQuery 进度条中显示

ASP .NET - 在 GridView 中更新之前保存现有数据的副本

在 Asp.Net c# 中更新 gridview

更新asp.net GridView中的行时出错

当在 asp.net 中插入更新的记录而不刷新页面时,如何自动更新 Gridview?

在 GridView DataBind 之后更新 ASP.NET 页面