2012-11-16 45 views
0

Default.aspx中有一個DataGrid,Requirement是用JavaScript方法獲取所選行的所有列的文本,並將其複製到剪貼板。目前,我正在執行此任務,但它會選擇Grid的所有行並將所有數據過濾到剪貼板。如何在JavaScript方法中獲取ASP.NET DataGrid控件的選定行索引?

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'; 
} 
} 

任何建議,如何辨別選擇行格,只有在剪貼板中所選行的數據複製。

+0

? – Sean

+0

看到它將成爲一個jQuery/Java-Script代碼。所以你將不得不看看你如何區分你選擇的行與其他行。意味着CSS類或其他東西,並在此基礎上,你可以找到價值。只是一個想法 –

回答

4
function setSelectedRowId(RowId){ 
     document.getElementById("txtRowId").value = RowId; } 

    private void ObjList_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e) 
    { 
     if (e.Item.ItemType == ListItemType.AlternatingItem || e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.SelectedItem) 
     { 
      e.Item.Attributes.Add("onclick", "setSelectedRowId('" + e.Item.Cells[0].Text + "'); 
     } 
+0

任何解釋都會有所幫助。 – CCoder

+0

我需要在哪裏調用這個事件「ObjList_ItemDataBound」? –

+0

在數據網格的屬性中添加一個OnItemDataBound =「ObjList_ItemDataBound」,並在綁定時使用該ObjList_ItemDataBound方法。 –

相關問題