简体   繁体   English

在 c# asp.net 中复制到剪贴板

[英]copy to clipboard in c# asp.net

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Windows.Forms; // step 1

namespace School.Admin
{

public partial class Test : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
    }

    [STAThreadAttribute] // step 2
    protected void LinkButton1_Click(object sender, EventArgs e)
    {
        Clipboard.SetText("Why it did not copy the words"); //step 3
    }
}

} }

the erorr is:错误是:

The current thread must be set to Single Thread Apartment (STA) mode before OLE calls can be made.在进行 OLE 调用之前,必须将当前线程设置为单线程单元 (STA) 模式。 Make sure the Main function is checked确保选中 Main 函数

you should use a piece of js你应该使用一段js

  <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title>Copy to Clipboard</title>
     <script type="text/javascript">
         function CopyToClipboard(myID) 
         {
              var copyText = document.getElementById(myID);

              /* Select the text field */
              copyText.select();
              copyText.setSelectionRange(0, 99999); /* For mobile devices */

              /* Copy the text inside the text field */
              document.execCommand("copy");
         }
    </script>
    
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
            <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
            <asp:Button ID="Button1" runat="server" Text="Copy Text Box Text to Clip board" OnClientClick="CopyToClipboard('TextBox1')" />
        </div>
        </form>
    </body>
 </html>

As of Dec. 2021 - Here's a working example using jQuery / js:截至 2021 年 12 月 - 这是一个使用 jQuery / js 的工作示例:

<script type="text/javascript">

    function CopyToClipboard() 
    {
        var copyText = $('[id$="txt_Output"]').val();

        navigator.clipboard.writeText(copyText)
          .then(() => { alert('Copied to clipboard.') })
          .catch((error) => { alert('Copy failed. Error: ${error}') })
    }

</script>

I pieced together some answers from this thread to help me arrive at the above code: document.execCommand('copy') not working on Chrome我从这个线程中拼凑了一些答案来帮助我得到上面的代码: document.execCommand('copy') not working on Chrome

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM