当前位置:编程学习 > C#/ASP.NET >>

winform下的这段代码转为asp.net代码

winform下的代码:

  string s=string.Empty;
  IDataObject o = Clipboard.GetDataObject();
  if (o.GetDataPresent(DataFormats.CommaSeparatedValue))
  {
      StreamReader sr = new StreamReader((Stream)o.GetData(DataFormats.CommaSeparatedValue),Encoding.GetEncoding("gb2312"));
      s = sr.ReadToEnd();
      sr.Close();
  }


这段代码的含义是:将剪贴板中的数据以csv的格式读取到变量s中,其中必须以csv格式读取,因为剪贴板中的内容是从Excel中复制的,如果以文本方式读取将不能正确解析。

现想在web form中实现同样的功能,该web form中有一个button1,单击该button1后就可以将剪贴版中的内容以csv的格式读取到web form中的c#变量string s 中,不得使用隐藏控件传递。本人对asp.net并不熟悉,还望给出尽可能详细的代码。

谢谢 --------------------编程问答-------------------- 这个不得不借助javascript来实现,因为asp.net在客户端运行环境就是浏览器,所以是没有办法直接读取的

<SCRIPT>
var bResult;
// 选中要剪切的文本。在剪切事件中文本选中区的尾随空格导致剪
// 切选快捷菜单项目保持无效。
function fnLoad() {
    var r = document.body.createTextRange();
    r.findText(oSource.innerText);
    r.select();
}

// 启用剪切快捷菜单项目,该项目在 DIV 上时默认为无效
function fnBeforeCut() {
    event.returnValue = false;
}

// 以文本格式给 window.clipboardData 对象赋予数据。
// 将 setData 方法的结果 (Boolean) 显示在下面的输入框内。
function fnCut(){
    event.returnValue = false;
    bResult = window.clipboardData.setData("Text",oSource.innerText);
    oSource.innerText = "";
    tText.innerText += bResult;
}

// 启用粘贴快捷菜单项目,该项目在 DIV 上时默认也为无效
function fnBeforePaste() {
    event.returnValue = false;
}

// 在 onpaste 中取消 returnValue 以便输入文本,该操作有默认
// 的行为。
function fnPaste() {
    event.returnValue = false;
    oTarget.innerText = window.clipboardData.getData("Text");
}

</SCRIPT>
</HEAD>

<BODY onload="fnLoad()" TOPMARGIN=0 LEFTMARGIN=0 BGPROPERTIES="fixed" BGCOLOR="#FFFFFF"
    LINK="#000000" VLINK="#808080" ALINK="#000000">

<DIV CLASS="clsSource" ID="oSource" onbeforecut="fnBeforeCut()" oncut="fnCut()">选中并剪切此文本</DIV>
<DIV CLASS="clsTarget" ID="oTarget" onbeforepaste="fnBeforePaste()" onpaste="fnPaste()">将文本粘贴在这里</DIV><BR>

<SPAN CLASS="clsData">setData 结果:</SPAN>
<INPUT CLASS="clsText" ID="tText" TYPE="text" READONLY VALUE="" SIZE="6" TABINDEX="-1">

</BODY>
--------------------编程问答-------------------- 新建的web技术交流群,欢迎大家加入一起讨论:
群号:29037453 --------------------编程问答-------------------- 另外,你点击button1的时候,会引起页面的回传,所以,不利用隐藏域保存你从剪贴板上面读下来的数据,就没有办法将数据提交到服务器端,这个是web的基本原理了。 --------------------编程问答-------------------- 帮顶~~~~~~ --------------------编程问答-------------------- 谢谢回答,请看清题目,
第一获取剪贴板的内容最后的结果是csv格式,不是普通的获取文本
第二不用隐藏控件,js不可以直接操作c#变量吗? --------------------编程问答-------------------- ................ --------------------编程问答-------------------- 有点难,自己up一下 --------------------编程问答-------------------- 。。。。。。。。。。。。。。。。 --------------------编程问答-------------------- 只能友情幫頂了 ····· --------------------编程问答-------------------- 。。。。。。。。。。。 --------------------编程问答-------------------- Clipboard 不能在 Asp.NET 中使用?

--------------------编程问答-------------------- .................. --------------------编程问答-------------------- ..............
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,