2010-07-14 3 views
0

моя проблема, если пользователь вводит одно предложение/слово в текстовом поле mulitiline и нажимает кнопку ввода , тогда это слово, которое нажато для ввода buuton, должно храниться в базе данных. означает, что если пользователь входит в одно текстовое поле в формате 1 GB 2 GB 3 GB 80 GB В качестве параметров фильтра в базе данных они должны храниться как разные строки. надеюсь, что вы поняли мою проблему.многострочное текстовое поле

+0

Домашнее задание? Покажите нам свой код, пожалуйста. – adatapost

ответ

1

Так что ваш пользователь вводит:

1GB 
2GB 
3GB 
80GB 

и вы хотите разделить те, так что вы можете сохранить их в виде четырех отдельных записей в базе данных?

Использование функции Split в строке позволяет вырезать строку в массив на основе разделителя строк. В вашем случае мы будем использовать символ новой строки, чтобы разделить исходную текстовое поле строки:

protected void Button1_Click(object sender, EventArgs e) 
    { 
     string textLines; 
     string[] textLine; 

     textLines=MultilineTextBox.Text; 

     textLine = textLines.Split(Environment.NewLine.ToArray(), StringSplitOptions.RemoveEmptyEntries); 

     // At this point the textLines array will have four entries in it, one for each line in the textbox on the form 
    } 

Вы можете затем цикл через массив для сохранения строк в базу данных.

0

Я бы предложил лучше использовать комбинацию текстовой области Singleline и Listbox. Но если вы хотите текстовое поле Multiline (и без Ajax) имеют вид:

function checkEnter(e){ 
     var characterCode 
     if(e && e.which){ 
      e = e 
      characterCode = e.which 
     } else { 
      e = event 
      characterCode = e.keyCode 
     } 
     if(characterCode == 13){ 
      var txt=document.getElementById('<%= TextBox1.ClientId%>'); 
      txt.blur(); 
     } 
    } 

    function moveCursorToEndOfTextBox(){ 
     var txt=document.getElementById('<%= TextBox1.ClientId%>'); 
     txt.focus(); 
     txt.value = txt.value+'\n'; 
    } 


<asp:TextBox ID="TextBox1" onkeypress="checkEnter(this)" AutoPostBack="true" OnTextChanged="TextChanged" TextMode="MultiLine" runat="server"></asp:TextBox> 

и CodeBehind:

Protected Sub TextChanged(ByVal sender As Object, ByVal evt As EventArgs) 
    Dim allLines As New List(Of String)(Microsoft.VisualBasic.Strings.Split(Me.TextBox1.Text.Trim, vbCrLf)) 
    Dim newLine As String = allLines(allLines.Count - 1) 
    'save new item to db ..... 

    'register script to jump into textbox and got to end of text 
    ScriptManager.RegisterStartupScript(Me, Me.GetType, "moveCursorToEndOfTextBox", "moveCursorToEndOfTextBox();", True) 
    End Sub 
Смежные вопросы