ASP.NET的简单数据绑定

ASP.NET也可以将代码前置,不借助VS.NET的代码提示功能,也许能体会到更多的细节吧。简单数据绑定的关键一点就是利用<%# ... %>来调用函数,下图是要实现的功能:

技术分享

代码如下:

<%@ Page Language="C#" ContentType="text/html" ResponseEncoding="gb2312" Debug="true"%>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.SqlClient" %>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>简单数据绑定</title>
<style type="text/css">
h1,div {text-align:center; font-family:宋体; font-size:x-large; color:#CC0000}
table {font-size:14px; color:black}
.stdTextBox {text-align:center; background-color:#CCCCCC; color:#990000}

</style>
</head>
<body bgcolor="ivory">

<form runat="server">
<h1>当前路径:<asp:Label runat="server" ID="lblPath"/></h1>
<div>
<table align="center">
<tr>
<th>编号</th><th>姓名</th><th>城市</th></tr>
<td><asp:TextBox ID="txtID" CssClass="stdTextBox" runat="server" Text=‘<%#getData("CustomerID") %>‘/></td>
<td><asp:TextBox ID="txtName" CssClass="stdTextBox" runat="server" Text=‘<%#getData("CompanyName") %>‘/></td>
<td><asp:TextBox ID="txtTeam" CssClass="stdTextBox" runat="server" Text=‘<%#getData("City") %>‘/></td>
</table>
<asp:LinkButton ID="btnPrev" Font-Size="17px" runat="server" Text="<<" onClick="movePrev"/>
<asp:LinkButton ID="btnNext" Font-Size="17px" runat="server" Text=">>" onClick="moveNext"/>
</div>
</form>

<script language="c#" runat="server">
public void Page_Load(Object sender,EventArgs e)
{
    this.lblPath.Text = Request.Url.ToString();
    if(!IsPostBack)
    {
        string strConn = "server=.;database=Northwind;uid=sa;pwd=millfox";
        DataSet ds = new DataSet();
        string strSelect = "SELECT CustomerID,CompanyName,City FROM Customers";
        SqlDataAdapter cmd = new SqlDataAdapter(strSelect,strConn);
        cmd.Fill(ds,"tempTable");
        this.txtID.Text = ds.Tables["tempTable"].Rows[0]["CustomerID"].ToString();
        this.txtName.Text = ds.Tables["tempTable"].Rows[0]["CompanyName"].ToString();
        this.txtTeam.Text = ds.Tables["tempTable"].Rows[0]["City"].ToString();
        
        Session["currentRecord"] = 0;
        Session["recordCount"] = ds.Tables["tempTable"].Rows.Count-1;
        Session["myDs"] = ds;
        ReFresh();
    }
    
}

public void ReFresh()
{
    this.txtID.DataBind();
    this.txtName.DataBind();
    this.txtTeam.DataBind();
}

public void moveNext(Object sender,EventArgs e)
{
    int i = (int)Session["currentRecord"];
    int total = (int)Session["recordCount"];
    if(i<total)
    {
        Session["currentRecord"] = i+1;
        ReFresh();
    }
}

public void movePrev(Object sender,EventArgs e)
{
    int i = (int)Session["currentRecord"];
    if(i>0)
    {
        Session["currentRecord"] = i-1;
        ReFresh();
    }
}

public string getData(string colName)
{
    DataSet ds = (DataSet)Session["myDs"];
    int i = (int)Session["currentRecord"];
    string temp = ds.Tables["tempTable"].Rows[i][colName].ToString();
    return temp;
}
</script>
</body>
</html>

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。