使用ASP.Net Gridview控件中的复选框仅打印选定的列 [英] Print only the columns which are selected using checkbox in a ASP.Net Gridview control

查看:58
本文介绍了使用ASP.Net Gridview控件中的复选框仅打印选定的列的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个gridview,其中我想为gridview的每一列放置一个复选框,我还需要打印那些已经检查过的列。我可以这样做吗?



目前我有以下代码

< asp:GridView ID =GridView2runat =serverAutoGenerateColumns =false>

<列> < asp:TemplateField HeaderText =NameSortExpression =NameControlStyle-Width =150pxItemStyle-Horizo​​ntalAlign =Left>

< HeaderTemplate>

< asp:CheckBox ID =ChkNamerunat =serverText =Name/>

< asp:Label ID =NameHeaderVisible =falserunat = serverText =NameForeColor =Black><% - < asp:LinkBut​​ton ID =NameHeaderVisible =truerunat =serverText =ShopName + ContactPersonForeColor =Black CommandName =SortCommandArgument =Name> - %> < / HeaderTemplate>

< itemtemplate>

< asp:Label ID =Namerunat =serverText ='<%#bind(名称)%>'CssClass =labelwrap>



< itemstyle width =150px>

< controlstyle width =150px>

< asp:TemplateField HeaderText =FNameSortExpression =FNameControlStyle-Width =200pxItemStyle-Horizo​​ntalAlign =LeftItemStyle-CssClass = labelwrap>

< HeaderTemplate>

< asp:CheckBox ID =ChkFNamePartyrunat =serverText =FName/>

< asp:Label ID =FNameHeaderVisible =falserunat =serverText =fNameForeColor =Black>

< / HeaderTemplate>

< itemtemplate>

< asp:标签ID =FNamerunat =serverText ='<%#bind(FName)%>'CssClass =labelwrap>



< itemstyle width =200px>

< controlstyle width =200px>

< asp:TemplateField HeaderText =LNameSortExpression = LNameControlStyle-Width =150pxItemStyle-Horizo​​ntalAlign =Left>

< HeaderTemplate>

< asp:CheckBox ID =ChkLNamerunat = serverText =LName/>

< asp:Label ID =LNameHeaderVisible =falserunat =serverText =LNameForeColor =Black> ;

< / HeaderTemplate>

< itemtemplate>

< asp:Label ID =LNamerunat =serverText ='<%#bind(LName)%>'CssClass =labelwrap>



< itemstyle width =150px>

< controlstyle width =150px>







protected void Button1_Click(object sender,EventArgs e)

{

StringWriter sw = new StringWriter();



HtmlTextWriter hw = new HtmlTextWriter(sw);



GridView1.RenderControl(hw);



string gridHTML = sw.ToString()。替换(\,')

.Replace(System.Environment.NewLine,) ;

StringBuilder sb = new StringBuilder();

sb.Append(< script type ='text / javascript'>);

sb.Append(window.onload = new function(){);

sb.Append(var printWin = window.open('','','left = 0 );

sb.Append(,top = 0,width = 1000,height = 600,status = 0'););

sb.Append( printWin.documen t.write(\);

sb.Append(gridHTML);

sb.Append(\););

sb.Append(printWin.document.close(););

sb.Append(printWin.focus(););

sb.Append(printWin.print(););

sb.Append(printWin.close();};);

sb.Append( < / script>);

ClientScript.RegisterStartupScript(this.GetType(),GridPrint,sb.ToString());



}

解决方案

请阅读我对这个问题的评论。



查看: gridview检查选中的列应该打印 [ ^ ]

i have a gridview in which i want to place a checkbox for each column of gridview and also i need to print only those columns which are checked.how can i do this?

At Present I have below given Code
<asp:GridView ID="GridView2" runat="server" AutoGenerateColumns="false">
<columns> <asp:TemplateField HeaderText="Name" SortExpression="Name" ControlStyle-Width="150px" ItemStyle-HorizontalAlign="Left">
<HeaderTemplate>
<asp:CheckBox ID="ChkName" runat="server" Text="Name" />
<asp:Label ID="NameHeader" Visible="false" runat="server" Text="Name" ForeColor="Black"><%--<asp:LinkButton ID="NameHeader" Visible="true" runat="server" Text="ShopName + ContactPerson" ForeColor="Black" CommandName="Sort" CommandArgument="Name" >--%> </HeaderTemplate>
<itemtemplate>
<asp:Label ID="Name" runat="server" Text='<% # bind("Name")%>' CssClass="labelwrap">

<itemstyle width="150px">
<controlstyle width="150px">
<asp:TemplateField HeaderText="FName" SortExpression="FName" ControlStyle-Width="200px" ItemStyle-HorizontalAlign="Left" ItemStyle-CssClass="labelwrap">
<HeaderTemplate>
<asp:CheckBox ID="ChkFNameParty" runat="server" Text="FName" />
<asp:Label ID="FNameHeader" Visible="false" runat="server" Text="fName" ForeColor="Black">
</HeaderTemplate>
<itemtemplate>
<asp:Label ID="FName" runat="server" Text='<% # bind("FName")%>' CssClass="labelwrap">

<itemstyle width="200px">
<controlstyle width="200px">
<asp:TemplateField HeaderText="LName" SortExpression="LName" ControlStyle-Width="150px" ItemStyle-HorizontalAlign="Left">
<HeaderTemplate>
<asp:CheckBox ID="ChkLName" runat="server" Text="LName" />
<asp:Label ID="LNameHeader" Visible="false" runat="server" Text="LName" ForeColor="Black">
</HeaderTemplate>
<itemtemplate>
<asp:Label ID="LName" runat="server" Text='<% # bind("LName")%>' CssClass="labelwrap">

<itemstyle width="150px">
<controlstyle width="150px">



protected void Button1_Click(object sender, EventArgs e)
{
StringWriter sw = new StringWriter();

HtmlTextWriter hw = new HtmlTextWriter(sw);

GridView1.RenderControl(hw);

string gridHTML = sw.ToString().Replace("\"", "'")
.Replace(System.Environment.NewLine, "");
StringBuilder sb = new StringBuilder();
sb.Append("<script type = 'text/javascript'>");
sb.Append("window.onload = new function(){");
sb.Append("var printWin = window.open('', '', 'left=0");
sb.Append(",top=0,width=1000,height=600,status=0');");
sb.Append("printWin.document.write(\"");
sb.Append(gridHTML);
sb.Append("\");");
sb.Append("printWin.document.close();");
sb.Append("printWin.focus();");
sb.Append("printWin.print();");
sb.Append("printWin.close();};");
sb.Append("</script>");
ClientScript.RegisterStartupScript(this.GetType(), "GridPrint", sb.ToString());

}

解决方案

Please, read my comment to the question.

Check this: gridview checked selected columns should be print[^]


这篇关于使用ASP.Net Gridview控件中的复选框仅打印选定的列的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆