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?) %></a>
LinkButton 不好设置,推荐使用HyperLink或者a的方式,简单实用。特别是a标签,使用Javascript的方法也比较方便。
补充:
<asp:LinkButton ID="LinkButton3" runat="server" PostBackUrl='<%# "~/Default.aspx?></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 +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 :
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);
}
{
SqlDataSource1.DeleteParameters.Clear();
}