Split long string into many lines in a textbox.

I have an asp.net textbox which stores a long string.
'99024','99050','99070','99143','99173','99191','99201','99202','99203','99204','99211','99212','99213','99214','99215','99217','99218','99219','99221','99222','99231','99232','99238','99239','99356','99357','99371','99374','99381','99382','99383','99384','99385','99386','99391','99392'

Open in new window

It is a long string without white space. It contains many short strongs that are around single quotes. What I want is to split it into many lines into the textbox. Each line only has one short string.

What I did is that
<asp:TextBox ID="TextBox1" runat="server"  TextMode="MultiLine" Text='<%# Bind("test") %>'>
                                    </asp:TextBox>

Open in new window

It doesn't work.
Thanks.
zhshqzycAsked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

Imran Javed ZiaConsultant Software Engineer - .NET ArchitectCommented:
Hi,

Please add Wrap="true" and also add width and height if possible.
<asp:TextBox ID="TextBox1" runat="server"  Wrap="true" TextMode="MultiLine" Text='<%# Bind("test") %>'>

Thanks
0
Chinmay PatelChief Technical NinjaCommented:
I tried this from code-behind

On Page Load

this.TextBox1.Text = test.Replace(",", "\r\n");

If you want to go by data binding let me know.
0
zhshqzycAuthor Commented:
The origian question is from a GridView. I want to display a long string. Wrap="true" is not working.
How to modify the code?
<asp:TemplateField HeaderText="ICD9" ItemStyle-Width="75px" SortExpression="ICD9">
                            <ItemTemplate>
                                <div style="width: 75px; overflow: hidden; white-space: nowrap; word-wrap: break-word;">
                                    <%# Eval("ICD9")%>
                                </div>
                            </ItemTemplate>
                            <EditItemTemplate>
                                <div style="width: 75px; overflow: hidden; white-space: nowrap; word-wrap: break-word;">
                                    <asp:TextBox ID="TextBox1" runat="server"  TextMode="MultiLine" Text='<%# Bind("ICD9") %>'>
                                    </asp:TextBox>
                                </div>
                            </EditItemTemplate>
                        </asp:TemplateField>

Open in new window

0
Cloud Class® Course: Amazon Web Services - Basic

Are you thinking about creating an Amazon Web Services account for your business? Not sure where to start? In this course you’ll get an overview of the history of AWS and take a tour of their user interface.

Imran Javed ZiaConsultant Software Engineer - .NET ArchitectCommented:
Are you getting problem in normal mode or in edit mode
0
zhshqzycAuthor Commented:
Both.
0
Imran Javed ZiaConsultant Software Engineer - .NET ArchitectCommented:
then you can just insert newline in the string after specific number of charatcers in the source. like insert new line after each 100 or 50 charters in the source string,
0
zhshqzycAuthor Commented:
Need code.
0
Chinmay PatelChief Technical NinjaCommented:
Alright

Try this :
<asp:TextBox ID="TextBox1" runat="server" Text='<%# Eval("test").ToString().Replace(",", Environment.NewLine.ToString()) %>' 
                                    TextMode="MultiLine">
                                    </asp:TextBox>

Open in new window

0
zhshqzycAuthor Commented:
It doesn't works. The intellsense doesn't show the methods on EditItemTemplate.
0
Chinmay PatelChief Technical NinjaCommented:
It should work with Edit as well.  Can you take a print screen and post it here.
Also just in case, try setting Wrap="true"
0
zhshqzycAuthor Commented:
modeI updated it. Both cases are not working.
 <asp:TemplateField HeaderText="ICD9" ItemStyle-Width="75px" SortExpression="ICD9">
                            <ItemTemplate>
                                <div style="width: 75px; overflow: hidden; white-space: nowrap; word-wrap: break-word;">
                                    <%# Eval("ICD9").ToString().Replace(",", Environment.NewLine.ToString())%>
                                </div>
                            </ItemTemplate>
                            <EditItemTemplate>
                                <div style="width: 75px; overflow: hidden; white-space: nowrap; word-wrap: break-word;">
                                    <asp:TextBox ID="TextBox1" runat="server" Wrap="true"  TextMode="MultiLine" Text='<%# Bind("ICD9") %>'>
                                    </asp:TextBox>
                                </div>
                            </EditItemTemplate>
                        </asp:TemplateField>

Open in new window

0
Chinmay PatelChief Technical NinjaCommented:
1.If Intellisense doesn't come for a given code that doesn't mean that code is not valid.

2. I would suggest this update in your code


 <ItemTemplate>
                                <div style="width: 75px; overflow: hidden; white-space: nowrap; word-wrap: break-word;">
                                                                        <asp:TextBox ID="TextBox1" runat="server" Wrap="true"  TextMode="MultiLine" Text='<%# Eval("ICD9").ToString().Replace(",", Environment.NewLine.ToString())%>
' ReadOnly="true">
                                    </asp:TextBox>
                                </div>
                            </ItemTemplate>
                            <EditItemTemplate>
                                <div style="width: 75px; overflow: hidden; white-space: nowrap; word-wrap: break-word;">
                                    <asp:TextBox ID="TextBox1" runat="server" Wrap="true"  TextMode="MultiLine" Text='<%# Eval("ICD9").ToString().Replace(",", Environment.NewLine.ToString())%>
'>
                                    </asp:TextBox>
                                </div>
                            </EditItemTemplate>

Open in new window

0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
zhshqzycAuthor Commented:
System.Web.HttpException: A call to Bind was not well formatted.  Please refer to documentation for the correct parameters to Bind.    at System.Web.UI.ControlBuilder.PreprocessAttribute(String filter, String attribname, String attribvalue, Boolean mainDirectiveMode)     at System.Web.UI.ControlBuilder.PreprocessAttributes(ParsedAttributeCollection attribs)     at System.Web.UI.ControlBuilder.Init(TemplateParser parser, ControlBuilder parentBuilder, Type type, String tagName, String id, IDictionary attribs)     at System.Web.UI.ControlBuilder.CreateBuilderFromType(TemplateParser parser, ControlBuilder parentBuilder, Type type, String tagName, String id, IDictionary attribs, Int32 line, String sourceFileName)     at System.Web.UI.ControlBuilder.CreateChildBuilder(String filter, String tagNa...      5823c266-b89d-4c8c-b96b-fcd8dc03acfa
<asp:TemplateField HeaderText="ICD9" ItemStyle-Width="75px" SortExpression="ICD9">
                            <ItemTemplate>
                                <div style="width: 75px; overflow: hidden; white-space: nowrap; word-wrap: break-word;">
                                    <%# Eval("ICD9").ToString().Replace(",", Environment.NewLine.ToString())%>
                                </div>
                            </ItemTemplate>
                            <EditItemTemplate>
                                <div style="width: 75px; overflow: hidden; white-space: nowrap; word-wrap: break-word;">
                                    <asp:TextBox ID="TextBox1" runat="server" Wrap="true"  TextMode="MultiLine" Text='<%# Bind("ICD9").ToString().Replace(",", Environment.NewLine.ToString()) %>'>
                                    </asp:TextBox>
                                </div>
                            </EditItemTemplate>
                        </asp:TemplateField>

Open in new window

0
Chinmay PatelChief Technical NinjaCommented:
Line 9

<asp:TextBox ID="TextBox1" runat="server" Wrap="true"  TextMode="MultiLine" Text='<%# Bind("ICD9").ToString().Replace(",", Environment.NewLine.ToString()) %>'>


Bind

should be

Eval

0
zhshqzycAuthor Commented:
Then the error disappears indeed. But it still has same image in normal mode. In edit mode, each row does have one short string. However I have to use arrow to look up the string.
See the image.
test
0
Chinmay PatelChief Technical NinjaCommented:
Error must disappear as that's the code I suggested 2 posts back and change your ItemTemplate as well, you are still using old ItemTemplate.
And you have to use arrow 'cause the number of rows you will have is not fixed and it won't do any good t have a very large textarea.

If you must provide the full view then we can increase the rows of textarea. Just bind its Rows property as I have done with Text property.
0
zhshqzycAuthor Commented:
It is almost there. Two questions.
1. If I use asp.net label instead of textbox, is it possible to wrap the text in normal mode?
2. How to increase the rows of textarea?
0
Chinmay PatelChief Technical NinjaCommented:
1. Depends on many factors basically the style we attach and the style of parent container.
2. Bind its rows properties to
("ICD9").Split(',').Length

Also dont just copy the code, try to understand the trick behind it. Try to understand the trick and you would'nt have to hunt for the code.
0
zhshqzycAuthor Commented:
Awesome,
 
<asp:TextBox ID="TextBox1" runat="server" Wrap="true" TextMode="MultiLine" Text='<%# Eval("ICD9").ToString().Replace(",", Environment.NewLine.ToString())%>'
                                        Rows="'<% Eval("ICD9").ToString().Split(',').Length %>'" ReadOnly="true">
                                    </asp:TextBox>

Open in new window

Please correct my code because of exception.
0
Chinmay PatelChief Technical NinjaCommented:
Rows="'<%# Eval
:(
0
zhshqzycAuthor Commented:
Still wrong.
0
Chinmay PatelChief Technical NinjaCommented:
What exception you are getting?
0
zhshqzycAuthor Commented:
<ItemTemplate>
                                <div style="width: 75px; overflow: hidden; white-space: nowrap; word-wrap: break-word;">
                                    <asp:TextBox ID="TextBox1" runat="server" Wrap="true" TextMode="MultiLine" Text='<%# Eval("ICD9").ToString().Replace(",", Environment.NewLine.ToString())%>'
                                        Rows="'<%# Eval("ICD9").ToString().Split(',').Length %>'" ReadOnly="true">
                                    </asp:TextBox>
                                </div>
                            </ItemTemplate>
                            <EditItemTemplate>
                                <div style="width: 75px; overflow: hidden; white-space: nowrap; word-wrap: break-word;">
                                    <asp:TextBox ID="TextBox2" runat="server" Wrap="true" TextMode="MultiLine" Text='<%# Eval("ICD9").ToString().Replace(",", Environment.NewLine.ToString())%>
'>
                                    </asp:TextBox>
                                </div>
                            </EditItemTemplate>

Open in new window

The exception is
ystem.Web.HttpException: The server tag is not well formed.    at System.Web.UI.TemplateParser.ProcessError(String message)     at System.Web.UI.TemplateParser.ParseStringInternal(String text, Encoding fileEncoding)

Open in new window

0
Chinmay PatelChief Technical NinjaCommented:
arrgh.. my bad...

Here it is
Rows='<%# Eval("test").ToString().Split(new string[] { "," }, StringSplitOptions.None).Length %>'

Open in new window

0
zhshqzycAuthor Commented:
Many thanks.
0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
C#

From novice to tech pro — start learning today.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.