jQuery MiniUI

 找回密码
 立即注册
查看: 4375|回复: 7
打印 上一主题 下一主题

求教textarea读写txt问题 [复制链接]

Rank: 3Rank: 3

跳转到指定楼层
楼主
发表于 2013-1-16 18:19:55 |只看该作者 |倒序浏览
请教官网的DEMO右侧选项卡查看代码是如何实现插入回车的?
我用textarea读写txt文件,已经读取出来,可以修改,但是无法换行

如果现在光标在[......]内的任意位置,按回车换行,光标都会跑到[......]之后,在]后闪烁,而换行也没有插入进去,官网demo中的查看code页是如何实现的?
附件: 你需要登录才可以下载或查看附件。没有帐号?立即注册

Rank: 8Rank: 8

沙发
发表于 2013-1-17 09:10:03 |只看该作者
能否将你的页面代码贴一下,重现下问题,我本地看下

Rank: 3Rank: 3

板凳
发表于 2013-1-17 10:39:03 |只看该作者
factory 发表于 2013-1-17 09:10
能否将你的页面代码贴一下,重现下问题,我本地看下

页面文件:
  1. <%@ Page Language="C#" AutoEventWireup="true" CodeFile="menuinfo.aspx.cs" Inherits="main_jichu_menuinfo" %>

  2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4. <head>
  5.     <title>菜单信息</title>
  6.     <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
  7.     <link href="../../css/demo.css" rel="stylesheet" type="text/css" />
  8.     <script src="../../scripts/boot.js" type="text/javascript"></script>        
  9.     <!--引入皮肤样式-->
  10.     <link href="../../scripts/miniui/themes/blue/skin.css" rel="stylesheet" type="text/css" />
  11.     <link href="../../css/general.css" rel="stylesheet" type="text/css" />
  12. </head>
  13. <body>
  14.     <table>
  15.         <tr>
  16.             <td id="label" style ="color:Red; padding-top:10px; width:400px">Menu Manage — 菜单信息</td>
  17.             <td><div id="message" style="color:White; width:150px; text-align:center;"></div></td>
  18.         </tr>
  19.     </table>   
  20.     <div style="width:100%;">
  21.         <div class="mini-toolbar" style="border-bottom:0;padding:0px;">
  22.             <table style="width:100%;">
  23.                 <tr>
  24.                     <td style="width:100%;">
  25.                         <%--<a class="mini-button" iconCls="icon-date" onclick="read" plain="true">读取</a>--%>
  26.                         <input id="combo" class="mini-combobox" style="width:100;" textField="text" valueField="id"
  27.                                data="url" allowInput="true" onvalidation="read" showNullItem="true" nullItemText="请选择..."/>                       
  28.                         <span class="separator"></span>
  29.                         <a id="save" class="mini-button" iconCls="icon-save"
  30.                             onclick="write" plain="true">保存</a>            
  31.                     </td>                  
  32.                 </tr>
  33.             </table>           
  34.         </div>
  35.     </div>
  36.     <div  class="mini-fit" style="height:100px;">
  37.         <textarea id="editor" style="width:100%; height:100%;" class="mini-textarea" vtype="required"></textarea>
  38.     </div>
  39.     <script type="text/javascript">
  40.         var url = [{ id: 1, text: '菜单TXT' }, { id: 2, text: '机组TXT'}, { id: 3, text: '管网TXT'}];
  41.         mini.parse();
  42.         var textarea = mini.get("editor");
  43.         var combo = mini.get("combo");        
  44.         function read(){
  45.             var id = combo.getValue();
  46.             var messageid = mini.loading("读取中,请稍后......","Loading");
  47.             $.ajax({
  48.                 url:"menuinfo.ashx?method=read&id="+id,
  49.                 success:function(text){
  50.                     mini.hideMessageBox(messageid);
  51.                     if(text=="error"){
  52.                         showMessage("数据读取错误");
  53.                     }
  54.                     else{
  55.                         textarea.setValue(text);                        
  56.                     }
  57.                 },
  58.                 error:function(e,xhr,opt){
  59.                     mini.hideMessageBox(messageid);
  60.                     mini.alert("[ "+xhr+" ] — 错误状态:"+e.status+",错误信息:"+opt);
  61.                 }
  62.             });
  63.         }
  64.         
  65.         function write(){            
  66.             var json = textarea.getValue();
  67.             if(json == ""){
  68.                 showMessage("数据不能为空");
  69.             }  
  70.             else{
  71.                 var id = combo.getValue();
  72.                 var messageid = mini.loading("保存中,请稍后......","Loading");        
  73.                 $.ajax({
  74.                     url : "menuinfo.ashx?method=write&id="+id,
  75.                     data : { data : json },
  76.                     type : "post",
  77.                     success : function (text){
  78.                         if(text=="true")
  79.                             showMessage("保存成功");
  80.                         else
  81.                             showMessage("保存失败");
  82.                         mini.hideMessageBox(messageid);
  83.                     },
  84.                     error: function (jqXHR, textStatus, errorThrown) {
  85.                         mini.hideMessageBox(messageid);
  86.                         mini.alert(jqXHR.responseText);
  87.                     }
  88.                 });
  89.             }
  90.         }
  91.     </script>
  92. </body>
  93. </html>
复制代码
ashx文件:
  1. <%@ WebHandler Language="C#" Class="menuinfo" %>

  2. using System;
  3. using System.Web;
  4. using System.Collections;
  5. using System.IO;

  6. public class menuinfo : IHttpHandler {
  7.     String txtPath = "";
  8.     public void ProcessRequest (HttpContext context) {
  9.         String method = context.Request["method"];
  10.         String id = context.Request["id"];
  11.         switch (id)
  12.         {
  13.             case "1":
  14.                 txtPath = HttpContext.Current.Server.MapPath("../../data/menutree.txt");
  15.                 break;
  16.             case "2":
  17.                 txtPath = HttpContext.Current.Server.MapPath("../../data/jzcount.txt");
  18.                 break;
  19.             case "3":
  20.                 txtPath = HttpContext.Current.Server.MapPath("../../data/weizhi.txt");
  21.                 break;
  22.         }
  23.         switch (method)
  24.         {
  25.             case "read" :
  26.                 this.read(context);
  27.                 break;
  28.             case "write" :
  29.                 this.write(context);
  30.                 break;
  31.         }
  32.     }

  33.     public void read(HttpContext context)
  34.     {
  35.         try
  36.         {            
  37.             FileStream fs = new FileStream(txtPath, FileMode.Open, FileAccess.Read);
  38.             //FileStream fs = new FileStream(@tB_PachFileName.Text, FileMode.Open, FileAccess.Read);//读取文件设定
  39.             StreamReader m_streamReader = new StreamReader(fs, System.Text.Encoding.GetEncoding("UTF-8"));//设定读写的编码
  40.             //使用StreamReader类来读取文件
  41.             m_streamReader.BaseStream.Seek(0, SeekOrigin.Begin);
  42.             //  从数据流中读取每一行,直到文件的最后一行,并在rTB_Display.Text中显示出内容
  43.             //this.rTB_Display.Text = "";
  44.             String temp = "";
  45.             string strLine = m_streamReader.ReadLine();
  46.             while (strLine != null)
  47.             {
  48.                 temp += strLine + "\n";
  49.                 strLine = m_streamReader.ReadLine();
  50.             }
  51.             //关闭此StreamReader对象
  52.             m_streamReader.Close();
  53.             context.Response.Write(temp);
  54.         }
  55.         catch
  56.         {
  57.             //抛出异常
  58.             context.Response.Write("error");
  59.             return;
  60.         }
  61.     }

  62.     public void write(HttpContext context)
  63.     {
  64.         try
  65.         {
  66.             String json = context.Request["data"].ToString();
  67.             FileStream fs = new FileStream(txtPath, FileMode.Create);
  68.             StreamWriter sw = new StreamWriter(fs, System.Text.Encoding.GetEncoding("UTF-8"));
  69.             //开始写入
  70.             sw.Write(json);
  71.             //清空缓冲区
  72.             sw.Flush();
  73.             //关闭流
  74.             sw.Close();
  75.             fs.Close();
  76.             context.Response.Write("true");
  77.         }
  78.         catch
  79.         {
  80.             context.Response.Write("error");
  81.             return;
  82.         }
  83.     }

  84.     public bool IsReusable {
  85.         get {
  86.             return false;
  87.         }
  88.     }

  89. }
复制代码

Rank: 3Rank: 3

地板
发表于 2013-1-17 14:04:40 |只看该作者
别沉了,factory快来看看啊

Rank: 8Rank: 8

5#
发表于 2013-1-17 14:41:41 |只看该作者
johnconner 发表于 2013-1-17 14:04
别沉了,factory快来看看啊

我们已经重现问题了,正在处理

Rank: 8Rank: 8

6#
发表于 2013-1-18 16:24:26 |只看该作者
johnconner 发表于 2013-1-17 14:04
别沉了,factory快来看看啊

问题已经修复,下载更新即可

Rank: 3Rank: 3

7#
发表于 2013-1-18 16:25:47 |只看该作者
factory 发表于 2013-1-18 16:24
问题已经修复,下载更新即可

就当前这个V2.1.7版本就可以?

Rank: 9Rank: 9Rank: 9

8#
发表于 2013-1-18 16:28:34 |只看该作者
刚更新的,下载即可。

Archiver|普加软件

GMT+8, 2024-11-27 04:19 , Processed in 1.038068 second(s), 11 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部