如何在DataGrid中生成一个列动态复制数据中的数据如题DataGrid中生成一个列显示“复制”,点击后可以动态复制数据库中的数据最好能够点击后提示复制成功并且自动打开新的窗口高人指导谢谢

解决方案 »

  1.   

    /**//// <summary>
        /// 操作系统剪切板处理模块,提供的方法为静态函数
        /// </summary>
        /// <example>
        /// C#语言中使用该类的例子,从操作系统剪切板获得纯文本数据
        /// // 判断操作系统剪切板是否保存了纯文本数据
        /// if( ClipboardHandler.CanGetText())
        /// {
        ///        // 返回获得的纯文本数据
        ///        return ClipboardHandler.GetTextFromClipboard();
        /// }
        ///
        /// 向操作系统剪切板设置纯文本数据
        /// string strText = "要设置的纯文本数据";
        /// ClipboardHandler.SetTextToClipboard( strText );
        /// </example>
        public class ClipboardHandler
        ...{        /**//// <summary>
            /// 是否可以从操作系统剪切板获得文本
            /// </summary>
            /// <returns>true 可以从操作系统剪切板获得文本,false 不可以</returns>
            public static bool CanGetText()
            ...{
                // Clipboard.GetDataObject may throw an exception...
                try
                ...{
                    System.Windows.Forms.IDataObject data = System.Windows.Forms.Clipboard.GetDataObject();
                    return data != null && data.GetDataPresent(System.Windows.Forms.DataFormats.Text);
                }
                catch (Exception e)
                ...{
                    return false;
                }
            }
    //
    //        /// <summary>
    //        /// 是否可以向操作系统剪切板设置文本
    //        /// </summary>
    //        /// <returns></returns>
    //        public static bool CanSetText()
    //        {
    //            return true;
    //        }        /**//// <summary>
            /// 向操作系统剪切板设置文本数据
            /// </summary>
            /// <param name="strText">文本数据</param>
            /// <returns>操作是否成功</returns>
            public static bool SetTextToClipboard(string strText)
            ...{
                if ( strText != null && strText.Length > 0 )
                ...{
                    try
                    ...{
                        System.Windows.Forms.DataObject dataObject = new System.Windows.Forms.DataObject();
                        dataObject.SetData(System.Windows.Forms.DataFormats.UnicodeText , true, strText );
                        System.Windows.Forms.Clipboard.SetDataObject(dataObject, true);
                        return true;
                    }
                    catch
                    ...{
                        
                    }
                }
                return false;
            }        /**//// <summary>
            /// 从操作系统剪切板获得文本
            /// </summary>
            /// <returns>获得的文本,若操作失败则返回空对象</returns>
            public static string GetTextFromClipboard()
            ...{
                try
                ...{
                    System.Windows.Forms.IDataObject data = System.Windows.Forms.Clipboard.GetDataObject();
                    if( data.GetDataPresent(System.Windows.Forms.DataFormats.UnicodeText))
                    ...{
                        string strText = ( string) data.GetData( System.Windows.Forms.DataFormats.UnicodeText);
                        return strText;
                    }
                }
                catch
                ...{}
                return null;
            }
      

  2.   

    以上是一般的复制功能的实现,把其中的内容换成你DataGrid中选中行的数据就行了。得到选中行的所有数据 然后加到上面代码里面就行了
      

  3.   

    <a href="about:blank" target="_blank" onclick="window.clipboardData.setData('Text','<%# DataBinder.Eval(Container, "DataItem.RoldHttp") %>'); alert('复制成功');">复制</a>呵,搞定了,分享一下