Default.aspxで使用されるDataGridがあり、要件は、選択した行のすべての列のテキストをjavascriptメソッドで取得してクリップボードにコピーすることです。現在、私はこのタスクを実行していますが、グリッドのすべての行を選択し、すべてのデータをクリップボードに貼り付けます。
Default.aspx (サンプル ファイル)
<asp:GridView ID="ObjList" runat="server" OnLoad="xyz" AutoGenerateColumns="false" OnRowDataBound="ObjList_RowDataBound" AutoGenerateSelectButton="false">
<Columns>
.
.
.
</Columns>
javascript メソッドを呼び出してデータをクリップボードにコピーするサンプル ボタン。
<asp:ImageButton ID="BtnCopyToClipboard" ToolTip="Copy To Clipboard" ImageUrl="img/tlb_list_copy.gif" OnClientClick="CopyGridView('ObjList'); return false;" runat="server" />
サンプル JavaScript 関数:
function CopyGridView(gridId) {
var div = document.getElementById(gridId);
var sSelectedRowText = div.Rows[iPL_SelectedRowIndex].Value;
if (div != null) {
div.contentEditable = 'true';
var controlRange;
if (document.body.createControlRange) {
controlRange = document.body.createControlRange();
controlRange.addElement(div);
controlRange.execCommand('Copy');
alert(InfoMsgClipboard);
}
div.contentEditable = 'false';
}
}
提案、グリッドで選択された行を識別し、選択された行データのみをクリップボードにコピーする方法。