ASP.NET知识点总结3

1 datalist的绑定

后端代码

 protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                DataTable dt = new DataTable();
                dt.Columns.Add("num", typeof(int));
                for (int i = 0; i < 10; i++)
                {
                    DataRow dr = dt.NewRow();
                    dr[0] = i;
                    dt.Rows.Add(dr);
                }
                DataList1.DataSource = dt;
                DataList1.DataBind();

            }
        }

前端代码

  <asp:DataList ID="DataList1" runat="server">
      <ItemTemplate>
       数字:<%# ((DataRowView)Container.DataItem)["num"] %>
       平方:<%# (int)((DataRowView)Container.DataItem)["num"] * (int)((DataRowView)Container.DataItem)["num"]%>
       货币:<%# DataBinder.Eval(Container.DataItem,"num","${0:c}") %>
      </ItemTemplate>

    </asp:DataList>

效果如下:

再举个简单的例子

用label来绑定textbox的值

前端:<asp:Label ID="Label1" runat="server"><%# TextBox1.Text %></asp:Label>

后端: protected void TextBox1_TextChanged(object sender, EventArgs e)
        {
            Page.DataBind();

        }

效果:

2datalist的其他功能

 <EditItemTemplate>
                <asp:LinkButton ID="LinkButton3" runat="server" CommandName="Update">保存</asp:LinkButton>
                <asp:LinkButton ID="LinkButton4" runat="server" CommandName="Cancel">取消</asp:LinkButton>
                 <%# DataBinder.Eval(Container.DataItem,"userID") %>
                <asp:TextBox ID="txtname" runat="server" 
                    Text='<%# DataBinder.Eval(Container.DataItem,"userName") %>'></asp:TextBox>
            </EditItemTemplate>
            <FooterStyle BackColor="#C6C3C6" ForeColor="Black" />
            <FooterTemplate>
                <hr />
                <br />
                模版的页脚
            </FooterTemplate>
            <HeaderStyle BackColor="#4A3C8C" Font-Bold="True" ForeColor="#E7E7FF" />
            <HeaderTemplate>
                模版的页眉<br /> 
                <hr />
            </HeaderTemplate>
            <ItemStyle BackColor="#DEDFDE" ForeColor="Black" />
            <ItemTemplate>
            <asp:LinkButton ID="LinkButton1" runat="server" CommandName="select">查看详细信息</asp:LinkButton>
               <%# DataBinder.Eval(Container.DataItem,"userID") %>
               <%# DataBinder.Eval(Container.DataItem,"level") %>
                
                <asp:LinkButton ID="LinkButton2" runat="server" CommandName="Edit">编辑</asp:LinkButton>
                
            </ItemTemplate>
            <SelectedItemTemplate>
             员工的姓名:<%# DataBinder.Eval(Container.DataItem,"level") %>m 密码:<%# DataBinder.Eval(Container.DataItem,"passWord") %>
            </SelectedItemTemplate>

后端;

protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                DataBingtoList();
            }
        }
        private void DataBingtoList()
        {
           // int curPage = Convert.ToInt32(this.lbYe.Text);
            SqlConnection con = DB.createCon();
            SqlDataAdapter sda = new SqlDataAdapter();
            sda.SelectCommand = new SqlCommand("select * from [user]", con);
            DataSet ds = new DataSet();
            sda.Fill(ds, "emp");//emp相当于给ds起了个别名。
            DataList1.DataKeyField = "userID";
            DataList1.DataSource=ds.Tables["emp"];
            DataList1.DataBind();
        }

        protected void DataList1_ItemCommand(object source, DataListCommandEventArgs e)
        {
            if (e.CommandName=="select")
            {
                DataList1.SelectedIndex = e.Item.ItemIndex;
                DataBingtoList();
            }
        }

        protected void DataList1_EditCommand(object source, DataListCommandEventArgs e)
        {
            DataList1.EditItemIndex = e.Item.ItemIndex;//都是从0开始
            DataBingtoList();
        }

        protected void DataList1_UpdateCommand(object source, DataListCommandEventArgs e)
        {
            string empID=DataList1.DataKeys[e.Item.ItemIndex].ToString();

            string userName = ((TextBox)e.Item.FindControl("txtName")).Text;
            SqlConnection conn = DB.createCon();
            conn.Open();
            SqlCommand cmd = new SqlCommand("update [user] set userName="+userName+" where userID="+empID,conn);
            cmd.ExecuteNonQuery();
            DataList1.EditItemIndex = -1;//编辑项置空
            DataBingtoList();
        }

        protected void DataList1_CancelCommand(object source, DataListCommandEventArgs e)
        {
            DataList1.EditItemIndex = -1;//编辑项置空,取消编辑
            DataBingtoList();
        }
    }

效果:

一点击查看详细信息:

一点击编辑:,可以保存和取消修改。


3Repeater的用法。

举例:分页显示:

后端代码:

 protected void Page_Load(object sender, EventArgs e)
        {
            if (!this.IsPostBack)
            {
                lbYe.Text = "1";
                dataBindToRepater();
            }
        }

        private void dataBindToRepater()
        {

               int curPage = Convert.ToInt32( this.lbYe.Text);//获取当前页数
                SqlConnection con = DB.createCon();
                SqlDataAdapter sda = new SqlDataAdapter();
                sda.SelectCommand = new SqlCommand("select * from [user]", con);
                DataSet ds = new DataSet();
                sda.Fill(ds, "emp");
                PagedDataSource ps = new PagedDataSource();
                ps.DataSource=ds.Tables["emp"].DefaultView;
                ps.AllowPaging = true;//允许分页
                ps.PageSize = 3;//页大小为3
                ps.CurrentPageIndex = curPage - 1;//从0开始的
                Button1.Enabled = true;
                Button2.Enabled = true;
                if (curPage==1)
                {
                    Button1.Enabled = false;
                }
                if (curPage==ps.PageCount)
                {
                    Button2.Enabled = false;
                }
                Repeater1.DataSource = ps;
               
                Repeater1.DataBind();
            
 
        }

        protected void Button1_Click(object sender, EventArgs e)
        {
            lbYe.Text =(Convert.ToInt32( lbYe.Text) - 1).ToString();
            dataBindToRepater();
        }

        protected void Button2_Click(object sender, EventArgs e)
        {
            lbYe.Text = (Convert.ToInt32(lbYe.Text) + 1).ToString();
            dataBindToRepater();
        }

    }

前端代码:

  <ItemTemplate>
              <tr>
                <td>
                <%# DataBinder.Eval(Container.DataItem,"userID") %>
                <%# DataBinder.Eval(Container.DataItem,"level") %>
                </td>
              </tr>
            </ItemTemplate>
            <AlternatingItemTemplate>
                <font color="red"> 
                <tr>
                <td>
                <%# DataBinder.Eval(Container.DataItem,"userID") %>
                <%# DataBinder.Eval(Container.DataItem,"level") %>
                </td>
              </tr>
                </font>
            </AlternatingItemTemplate>
            <HeaderTemplate>
                <h3>
                    页眉</h3>
                    <table border="1"> 
                    <tr>
                        <td>员工名字</td>
                    </tr>
            </HeaderTemplate>
            <FooterTemplate>
                <h4>
                    页脚</h4>
                    </table>
            </FooterTemplate>

效果图:


有点问题,不过这是前端的知识,我也不太会调。


评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值