2011-01-29 51 views
1

我很想放棄。在GridView使用ASP.NET,除其他控件,我有以下幾點:從ASP.NET GridView更新中獲取textarea文本

<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" /> 

還是什麼都沒有!有任何想法嗎?

+0

數據顯示在文本框中嗎?我的代碼中沒有看到任何綁定。 – 2011-01-29 19:43:36

回答

1

一個選項可能是使用隱藏字段,並更新文本區域更改的文本。你可以使用jQuery做這樣的:

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

然後在服務器端,您可以檢索隱藏字段的值,並將其保存到數據庫中。

+0

是的,我有失敗的黑客方式。我想知道是否有一個「官方」的做法。我寧願做正確的事情,也不願意把事情搞砸。 – 2011-01-29 19:33:45