如何在数据列表中更新文本框中的文本



这与我一个月前问过的一个问题有关。我有一个html页面,加载有关候选人的信息数据。每个单元格都有关于候选人的信息、一个带有评论的文本框和一个按钮,用于提交对最初加载的评论所做的任何更改。相应的c#代码中的OnClick方法记住了IdCandidate和原始注释,但我不知道如何使它记住用户对注释文本框所做的任何更改。谢谢你!在HTML中:

<asp:Datalist ID="DataList1" runat="server"   >  
<ItemTemplate>
<table class="table-candidates">
<tr>
<td>
<%#Eval("IdCandidate")%> 
</td>
</tr>

<tr>
<td>
<asp:TextBox ID="Candidate_Comments" runat="server" TextMode="MultiLine" 
Height="100px" Width="180px" Text='<%#Bind("CandidateComments")%>' ></asp:TextBox>
</td>
</tr>
<tr>
<td>
<asp:button ID="BtnSaveComments" runat="server" text="Save Comments" 
CommandArgument='<%#Eval("IdCandidate") + ";" + Eval("CandidateComments")%>'
OnClick="BtnSaveComments_Click" Width="130px" Height="25px" />    
</table>
</ItemTemplate>
</asp:Datalist>

代码后面:

protected void BtnSaveComments_Click(object sender, EventArgs e)
{
Button btn = (Button)sender;
string IdSelected = btn.CommandArgument;
string[] commandArguments = btn.CommandArgument.Split(';'); 
//this might not be the best way to send multiple variables
//to the OnClick method, any suggestions to improve this are also welcome!
string varIdCandidate = commandArguments[0].ToString();
string varComments = commandArguments[1].ToString();
Response.Write("IdCandidate: " + varIdCandidate); //remembers IdCandidate
Response.Write(“Comments: “ + varComments);  //remembers original comments, but not any changes 
//typed into the Textbox
//several processes follow here, including updating SQL database 
//my question is: how to update the contents of the “Comments” variable
}

您需要检查Datalist1。控件集合以查看控件的内容和位置。然后尝试访问文本框。

,

TextBox tb = (TextBox)DataList1.FindControl("Candidate_Comments");
string varComments = tb.Text;

或此格式

Button btn = (Button) sender;
DataListItem item = (DataListItem) btn.NamingContainer;
TextBox txt = (TextBox) item.FindControl("Candidate_Comments");
string varComments =txt.Text;

最新更新