我想将DataGrid两列数据(姓名和身份证)号复制到剪贴板,即点击某行姓名单元格,就把姓名复制到剪贴板,点击身份证号单元格,就把身份证号复制到剪贴板.以下是我的代码:(我是用linkbutton做的)
/// <summary>
/// 用于获取单元格内容(姓名和身份证)到剪贴板
/// </summary>
/// <param name="source"></param>
/// <param name="e"></param>
private void DataGrid2_ItemCommand_1(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
try
{
string name = e.CommandName;
DataGrid2.SelectedIndex = e.Item.ItemIndex;
string myCopyText= "";
if(name.Equals("select_Name"))
{
myCopyText = ((LinkButton)DataGrid2.Items[DataGrid2.SelectedIndex].Cells[2].FindControl("lbfName")).Text.ToString().Trim();;
}
if(name.Equals("select_CID"))
{
myCopyText = ((LinkButton)DataGrid2.Items[DataGrid2.SelectedIndex].Cells[3].FindControl("lbfPersonId")).Text.ToString().Trim();
} string script="<script language='javascript'>"+ "window.clipboardData.setData('TEXT','"+myCopyText+"');"+"</script>";
Response.Write(script);
}
catch
{
}
} aspx:
<asp:TemplateColumn>
<HeaderTemplate>
姓名
</HeaderTemplate>
<ItemTemplate>
<asp:LinkButton id="lbfName" runat="server" CausesValidation =False CommandName="select_Name" ForeColor ="#000000" text='<%#DataBinder.Eval(Container.DataItem,"fName").ToString() %>'>
</asp:LinkButton>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn>
<HeaderTemplate>
证件号码
</HeaderTemplate>
<ItemTemplate>
<asp:LinkButton id="lbfPersonId" runat="server" CausesValidation =False ForeColor ="#000000" CommandName="select_CID" text='<%#DataBinder.Eval(Container.DataItem,"fPersonId").ToString() %>'>
</asp:LinkButton>
</ItemTemplate>
</asp:TemplateColumn> 现在我的功能是实现了,但是每次它都刷新页面,就是滚动条每次都回到最上面.怎么样能让它不刷新呢?
/// <summary>
/// 用于获取单元格内容(姓名和身份证)到剪贴板
/// </summary>
/// <param name="source"></param>
/// <param name="e"></param>
private void DataGrid2_ItemCommand_1(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
try
{
string name = e.CommandName;
DataGrid2.SelectedIndex = e.Item.ItemIndex;
string myCopyText= "";
if(name.Equals("select_Name"))
{
myCopyText = ((LinkButton)DataGrid2.Items[DataGrid2.SelectedIndex].Cells[2].FindControl("lbfName")).Text.ToString().Trim();;
}
if(name.Equals("select_CID"))
{
myCopyText = ((LinkButton)DataGrid2.Items[DataGrid2.SelectedIndex].Cells[3].FindControl("lbfPersonId")).Text.ToString().Trim();
} string script="<script language='javascript'>"+ "window.clipboardData.setData('TEXT','"+myCopyText+"');"+"</script>";
Response.Write(script);
}
catch
{
}
} aspx:
<asp:TemplateColumn>
<HeaderTemplate>
姓名
</HeaderTemplate>
<ItemTemplate>
<asp:LinkButton id="lbfName" runat="server" CausesValidation =False CommandName="select_Name" ForeColor ="#000000" text='<%#DataBinder.Eval(Container.DataItem,"fName").ToString() %>'>
</asp:LinkButton>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn>
<HeaderTemplate>
证件号码
</HeaderTemplate>
<ItemTemplate>
<asp:LinkButton id="lbfPersonId" runat="server" CausesValidation =False ForeColor ="#000000" CommandName="select_CID" text='<%#DataBinder.Eval(Container.DataItem,"fPersonId").ToString() %>'>
</asp:LinkButton>
</ItemTemplate>
</asp:TemplateColumn> 现在我的功能是实现了,但是每次它都刷新页面,就是滚动条每次都回到最上面.怎么样能让它不刷新呢?
所以每次都需要PostBack你可以都用js实现
给linkbutton加一个js方法