使用ASP.Net Gridview控件中的复选框仅打印选定的列 [英] Print only the columns which are selected using checkbox in a ASP.Net Gridview control
问题描述
我有一个gridview,其中我想为gridview的每一列放置一个复选框,我还需要打印那些已经检查过的列。我可以这样做吗?
目前我有以下代码
< asp:GridView ID =GridView2runat =serverAutoGenerateColumns =false>
<列> < asp:TemplateField HeaderText =NameSortExpression =NameControlStyle-Width =150pxItemStyle-HorizontalAlign =Left>
< HeaderTemplate>
< asp:CheckBox ID =ChkNamerunat =serverText =Name/>
< asp:Label ID =NameHeaderVisible =falserunat = serverText =NameForeColor =Black><% - < asp:LinkButton 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-HorizontalAlign =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-HorizontalAlign =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屋!