Hello everyone,
Does anyone knows how to get the Text, that a user entered, of a Textbox inside a repeater? I'm not able to find a solution for this problem.
It seems that I can only retrieve the Text of controls with default Text and not with databound or Text that the user entered.
I'm able to retrieve the Text of a Textbox inside a repeater with a default value i.e.:
<asp:TextBox id="TextBox1" runat="server">asd</asp:TextBox>
Then in codebehind I use this:
System.Web.UI.WebControls.TextBox MyText=Repeater1.Items[0].FindControl("TextBox1");
That works well but with this code it doesn't work either:
<asp:Label ID="Label1" Runat="server">
<%# DataBinder.Eval(Container.DataItem,"Key")%>
</asp:Label>
System.Web.UI.WebControls.Label MyLabel=Repeater1.Items[0].FindControl("Label1");
I do get the control but with the Text empty =""
If anyone has any idea please let me know.
Here it is the html code:
<asp:Repeater id="Repeater1" runat="server">
<HeaderTemplate>
<TABLE id="Table2" cellSpacing="0" cellPadding="0" width="300" border="0">
</HeaderTemplate>
<ItemTemplate>
<tr>
<td><asp:Label id="Label1" runat="server">
<%# DataBinder.Eval(Container.DataItem,"Key")%>
</asp:Label>
</td>
</tr>
<tr>
<td>
<asp:TextBox id="TextBox1" runat="server"></asp:TextBox>
</td>
</tr>
</ItemTemplate>
<FooterTemplate>
</table>
<asp:Button id="Button1" runat="server" Text="Button"></asp:Button>
</FooterTemplate>
</asp:Repeater>
And here the codebehind:
private void Page_Load(object sender, System.EventArgs e)
{
// Put user code to initialize the page here
if(IsPostBack)
{
}
else
{
MyHashTable=new Hashtable(2);
MyHashTable.Add("Hello",1);
MyHashTable.Add("Bye",2);
this.Repeater1.DataSource=MyHashTable;
this.Repeater1.DataBind();
}
}
private void Repeater1_ItemCommand(object source, System.Web.UI.WebControls.RepeaterCommandEventArgs e)
{
System.Web.UI.WebControls.TextBox MyTextBox=System.Web.UI.WebControls.TextBox)e.Item.FindControl("TextBox1");
System.Web.UI.WebControls.Label MyLabel=(System.Web.UI.WebControls.Label)e.Item.FindControl("Label1");
string mmmm=MyLabel.Text.ToString().TrimEnd();
mmmm=MyTextBox.Text.ToString().TrimEnd();
}
private void Repeater1_ItemDataBound(object sender, System.Web.UI.WebControls.RepeaterItemEventArgs e)
{
System.Web.UI.WebControls.TextBox MyTextBox=System.Web.UI.WebControls.TextBox)e.Item.FindControl("TextBox1");
System.Web.UI.WebControls.Label MyLabel=(System.Web.UI.WebControls.Label)e.Item.FindControl("Label1");
string mmmm=MyLabel.Text.ToString().TrimEnd();
mmmm=MyTextBox.Text.ToString().TrimEnd();
}
Thanks a lot in advance
P.D: I don't want to assign a value to a textbox, I want an empty textbox so the user can enter something in there and then I want to retrieve what he wrote.