按钮贴回来

时间:2015-07-02 20:05:46

标签: javascript asp.net .net-3.5

我添加了一个"复制到剪贴板"网页上的按钮。当用户从网格中选择一行时,一些细节存储在隐藏的textarea控件中。 此外,页面上的隐藏div(记录详细信息)可见;它包含"复制到剪贴板"按钮。

何时"复制到剪贴板"单击按钮,隐藏文本区域的内容将复制到剪贴板。这只是一个HTML按钮,其onclick设置为javascript函数。此外,textarea的内容以及详细div内容都填充在客户端,因此我无法理解为什么会发生回发。

我注意到,当页面最初加载时,它工作正常:我从网格中选择一条记录,"详细信息"填充页面部分(客户端),其中包括剪贴板按钮。现在,如果我进行搜索,需要回发来过滤网格,然后选择一条记录(更新详细信息div的内容)并单击剪贴板按钮,它会回发。 以下是代码的相关部分:

<textarea id="taDSSInfo" style="display:none"></textarea> 
<asp:UpdatePanel runat="server" ID="upnlDetail" RenderMode="Inline" UpdateMode="Conditional">
    <ContentTemplate>     
        <controls for displaying record detail >
        <input type="image" id="ibCTC" src="Clipboard.png" />
        ....
    </ContentTemplate>
</asp:UpdatePanel>

// Set textarea's content, based on data from grid's selected record
taDSSInfo = document.getElementById('taDSSInfo');
var text = '';
text += 'Laptop IP: ' + record["IPADDR"] + '\r\n';                    
....                    
text += 'Finance Number: ' + record["FINANCENUMBER"] + '\r\n';                    
taDSSInfo.innerText = text.replace(/\r?\n/g, '\n');

这是处理复制到剪贴板的按钮的绑定事件。它位于.aspx文件的底部:

<script type="text/javascript">

    function bindEvent(el, eventName, eventHandler) {
        if (el.addEventListener){
            el.addEventListener(eventName, eventHandler, false); 
        } 
        else if (el.attachEvent){
            el.attachEvent('on'+eventName, eventHandler);
        }
    }

    var ibCTC = document.getElementById('ibCTC');

    bindEvent(ibCTC, 'click',function(event) {
        if (document.all)
        {
            if (window.clipboardData && clipboardData.setData)
            {
                var taDSSInfo = document.getElementById('taDSSInfo');
                var textToCopy = taDSSInfo.innerText;
                window.clipboardData.clearData('Text');
                window.clipboardData.setData('Text', textToCopy);
                //alert (window.clipboardData.getData ('Text'));
            }
        }
        else
            alert ("Copy to clipboard is supported in IE only");
        return false;
    });            

</script>

0 个答案:

没有答案