'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. Make sure the Main function is checked
Solution 1:[1]
you should use a piece of 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>
Solution 2:[2]
As of Dec. 2021 - Here's a working example using jQuery / js:
<script type="text/javascript">
function CopyToClipboard()
{
var copyText = $('[id$="txt_Output"]').val(); // txt_Output is the id of your textbox to copy from. Could refactor this to pass as a parameter as well if desired.
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
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | |
| Solution 2 |
