本文转自博客:http://blog.csdn.net/yyldir/archive/2009/05/10/4164695.aspx
1.GridView中使用超链接的技巧 GridView中的超级链接,可以设置一个模版列,放入超级链接的控件,设置绑定参数即可。数据绑定方式有两种,如下示例:◆Eval方式 <%# Eval("id") %>◆Bind方式 <%# Bind("id","~/info.aspx?id={0}") %>推荐使用第一种方式,可以在一个<%# %>里放入多个绑定,而第二种只能如此绑定一个值<%# Eval("id") + ":" + Eval("name")%>
做超级链接的控件,我们也有多种选择:◆asp:LinkButton 示例 <asp:LinkButton ID="LinkButton2" OnClientClick=<%# "window.open('info.aspx?id=" + Eval("id") + "&name=" + Eval("name") + "')" %> runat="server"><%# "LinkButton方式绑定:" + Eval("id") %></asp:LinkButton>◆asp:HyperLink示例 <asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl='<%# "~/info.aspx?id=" + Eval("id") + "&name=" + Eval("name") %>' Text='<%#"HyperLink控件:" + Eval("id") %>'></asp:HyperLink>◆a标签示例 <a href='<%# "info.aspx?id=" + Eval("id") + "&name=" + Eval("name") %>'>a标签:<%# Eval("id") + ":" + Eval("name")%></a><a href='Javascript:alert("<%# "~/info.aspx?id=" + Eval("id") + "&name=" + Eval("name") %>")'>链接js事件:<%# Eval("id") %></a>
LinkButton 不好设置,推荐使用HyperLink或者a的方式,简单实用。特别是a标签,使用Javascript的方法也比较方便。 补充:<asp:LinkButton ID="LinkButton3" runat="server" PostBackUrl='<%# "~/Default.aspx?id=" + Eval("FUserID") %>' CausesValidation="False" Text="跳转编辑"></asp:LinkButton>
2.gridview模板列加htmlinputcheckbox的取值①aspx文件:<asp:GridView ID="GridView1" runat="server" AllowPaging="True" AutoGenerateColumns="False" DataKeyNames="OrderID,ProductID" DataSourceID="SqlDataSource1" EmptyDataText="111"> <Columns> <asp:BoundField DataField="OrderID" HeaderText="OrderID" ReadOnly="True" SortExpression="OrderID" /> <asp:BoundField DataField="ProductID" HeaderText="ProductID" ReadOnly="True" SortExpression="ProductID" /> <asp:BoundField DataField="UnitPrice" HeaderText="UnitPrice" SortExpression="UnitPrice" DataFormatString="{0:C}" /> <asp:BoundField DataField="Quantity" HeaderText="Quantity" SortExpression="Quantity" /> <asp:BoundField DataField="Discount" HeaderText="Discount" SortExpression="Discount" /> <asp:ImageField DataImageUrlField="OrderID" DataImageUrlFormatString="/{0}.gif" HeaderText="pic"> </asp:ImageField> <asp:TemplateField FooterText="id"> <ItemTemplate> <input id="Checkbox1" runat="server" type="checkbox" value='<%# Eval("OrderID") %>' /> </ItemTemplate> </asp:TemplateField> </Columns> </asp:GridView> <%=gridview1.PageIndex +1%>of<%=GridView1.PageCount%>②cs文件:string str1;HtmlInputCheckBox cb;str1="";for(int i=0;i<GridView1.Rows.Count-1;i++){ cb=GridView1.Rows(i).Cells(6).FindControl("Checkbox1"); if(cb.Checked) { if(str1=="") { str1=cb.Value; } else { str1=str1+","+cb.Value; } }}Label1.Text=str1;
3.gridview模板列绑定gridview①aspx文件:<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="ProductID" DataSourceID="SqlDataSource1"> <Columns> <asp:BoundField DataField="ProductID" HeaderText="ProductID" InsertVisible="False" ReadOnly="True" SortExpression="ProductID" /> <asp:BoundField DataField="ProductName" HeaderText="ProductName" SortExpression="ProductName" /> <asp:TemplateField HeaderText="detail"> <ItemTemplate> <asp:GridView ID="GridView2" runat="server"> </asp:GridView> </ItemTemplate> </asp:TemplateField> </Columns> </asp:GridView>②cs文件:protected void GridView1_RowDataBound(object sender,System.Web.UI.WebControls.GridViewRowEventArgs e){ if(e.Row.RowType==DataControlRowType.DataRow) { SqlDataSource2.SelectParameters.Clear(); SqlDataSource2.SelectParameters.Add("id",e.Row.Cells(0).Text); GridView gv; gv=e.Row.Cells(2).FindControl("GridView2"); gv.DataSource=this.SqlDataSource2; gv.DataBind(); }}
4.GridView更新和删除显示提示信息①aspx文件:<asp:GridView ID="GridView1" runat="server" DataSourceID="SqlDataSource1" AutoGenerateColumns="False" DataKeyNames="au_id" OnRowCommand="GridView1_RowCommand" OnRowUpdating="GridView1_RowUpdating" OnRowDeleting="GridView1_RowDeleting"> <Columns> <asp:TemplateField> <ItemTemplate> <asp:LinkButton ID="Edit" runat="server" CommandName="Edit">编辑</asp:LinkButton> </ItemTemplate> </asp:TemplateField> <asp:TemplateField Visible="False"> <ItemTemplate> <asp:LinkButton ID="Update" runat="server" CommandName="Update" OnClientClick="return confirm('确定要更新?');">更新</asp:LinkButton> <asp:LinkButton ID="Delete" runat="server" CommandName="Delete" OnClientClick="return confirm('确定要删除');">删除</asp:LinkButton> <asp:LinkButton ID="Cancel" runat="server" CommandName="Cancel">取消</asp:LinkButton> </ItemTemplate> </asp:TemplateField> <asp:templatefield headertext="Last Name"> <itemtemplate> <%#Eval("au_lname") %> </itemtemplate> <edititemtemplate> <asp:textbox id="LastNameTextBox" text='<%#Eval("au_lname") %>' width="175" runat="server"/> <br/> <asp:requiredfieldvalidator id="LastNameRequiredValidator" controltovalidate="LastNameTextBox" errormessage="Please enter a last name." validationgroup="NameGroup" runat="server"/> </edititemtemplate> </asp:templatefield> <asp:templatefield headertext="First Name"> <itemtemplate> <%#Eval("au_fname") %> </itemtemplate> <edititemtemplate> <asp:textbox id="FirstNameTextBox" text='<%#Eval("au_fname") %>' width="175" runat="server"/> <br/> <asp:requiredfieldvalidator id="FirstNameRequiredValidator" controltovalidate="FirstNameTextBox" errormessage="Please enter a first name." validationgroup="NameGroup" runat="server"/> </edititemtemplate> </asp:templatefield> </Columns> </asp:GridView> <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:Pubs2000 %>" ProviderName="<%$ ConnectionStrings:Pubs2000.ProviderName %>" SelectCommand="SELECT au_id, au_lname, au_fname FROM authors" UpdateCommand="UPDATE authors SET au_lname = @au_lname, au_fname = @au_fname WHERE (au_id = @au_id)" DeleteCommand="DELETE FROM authors WHERE (au_id = @au_id)"> </asp:SqlDataSource>②cs文件:void GridView1_RowCommand(object sender, GridViewCommandEventArgs e) { switch (e.CommandName.ToLower()) { case "edit": GridView1.Columns[0].Visible = false; GridView1.Columns[1].Visible = true; break; case "update": case "delete": case "cancel": GridView1.Columns[0].Visible = true; GridView1.Columns[1].Visible = false; break; default: // Do nothing. break; } }
void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e) { int index = GridView1.EditIndex; GridViewRow row = GridView1.Rows[index];
TextBox firstNameTextBox = (TextBox)row.Cells[1].FindControl("FirstNameTextBox");
String firstName = ""; if (firstNameTextBox != null) { firstName = firstNameTextBox.Text; }
TextBox lastNameTextBox = (TextBox)row.Cells[2].FindControl("LastNameTextBox");
String lastName = ""; if (lastNameTextBox != null) { lastName = lastNameTextBox.Text; }
Parameter lastNameParameter = new Parameter("au_lname", TypeCode.String, lastName); Parameter firstNameParameter = new Parameter("au_fname", TypeCode.String, firstName);
SqlDataSource1.UpdateParameters.Clear(); SqlDataSource1.UpdateParameters.Add(lastNameParameter); SqlDataSource1.UpdateParameters.Add(firstNameParameter); }
void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e) { SqlDataSource1.DeleteParameters.Clear(); }
转载于:https://www.cnblogs.com/feima-lxl/archive/2009/06/25/1510610.html
相关资源:GridView表格的各种使用技巧