前台代码:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default8.aspx.cs" Inherits="Default8" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>无标题页</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:DetailsView ID="DetailsView1" runat="server" Height="50px" Width="125px"
AutoGenerateRows="false" ondatabound="DetailsView1_DataBound">
<Fields>
<asp:BoundField DataField="UserName" HeaderText="用户名" />
<asp:HyperLinkField DataNavigateUrlFields="userId" DataNavigateUrlFormatString="Default8.aspx?UserId={0}"
DataTextField="RealName" HeaderText="查看" />
<asp:BoundField DataField="Age" HeaderText="年龄" />
<asp:TemplateField HeaderText="性别">
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%#Eval("sex") %>' Visible="false"></asp:Label>
<asp:DropDownList ID="DropDownList1" runat="server">
<asp:ListItem Text="男" Value="True"></asp:ListItem>
<asp:ListItem Text="女" Value="False"></asp:ListItem>
</asp:DropDownList>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="Mobile" HeaderText="手机" />
<asp:TemplateField>
<HeaderTemplate>
邮件啦</HeaderTemplate>
<AlternatingItemTemplate>
<a href='emailto:<%#Eval("Email") %>'>
<%#Eval("Email") %></a>
</AlternatingItemTemplate>
<ItemTemplate>
<%#Eval("Email") %>
</ItemTemplate>
</asp:TemplateField>
</Fields>
<EmptyDataTemplate>
温馨提示:没有任何数据
</EmptyDataTemplate>
</asp:DetailsView>
</div>
</form>
</body>
</html>
后台代码:
using System; using System.Collections; using System.Configuration; using System.Data; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.HtmlControls; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Data.SqlClient; public partial class Default8 : System.Web.UI.Page { SqlConnection conn; protected void Page_Load(object sender, EventArgs e) { conn = new SqlConnection(ConfigurationManager.ConnectionStrings["sql2005"].ConnectionString); int userid; if (!IsPostBack) { //当当前URL地址中含有"UserId"参数并且能转换成数字时 if (int.TryParse(Request.QueryString["UserId"], out userid)) { SqlCommand comm = new SqlCommand("select * from userInfo where UserId=@userId", conn); comm.Parameters.AddWithValue("@UserId", userid); SqlDataAdapter adapter = new SqlDataAdapter(comm); DataSet ds = new DataSet(); adapter.Fill(ds); DetailsView1.DataSource = ds.Tables[0].DefaultView; DetailsView1.DataBind(); } else { //如果不能转换成数字,生成一个DataTable对象来绑定 //因为我们再设计代码中定义如果没有符合条件的数据时的显示效果 //所以此时会显示我们定义的没有数据时的效果 DataTable dt = new DataTable(); DetailsView1.DataSource = dt; DetailsView1.DataBind(); } } } /// <summary> /// 绑定后事件 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void DetailsView1_DataBound(object sender, EventArgs e) { //判断数据源中是否存在数据 if (DetailsView1.PageCount > 0) { //找到DropDownList DropDownList ddl = DetailsView1.Rows[3].FindControl("DropDownList1") as DropDownList; //从得到数据库中bit值 Label lbl = DetailsView1.Rows[3].FindControl("Label1") as Label; //根据值来绑定DropDownList选择的是男还是女 ListItem li = ddl.Items.FindByValue(lbl.Text); if (li != null) { li.Selected = true; } } } }
在数据库中有数据的情况下,在游览器中输入:
结果: