在C#中绑定动态datalist

时间:2014-03-30 16:25:28

标签: c# asp.net data-binding datalist

我正在尝试使用数据库创建动态数据列表绑定。我可以很容易地创建它,但我无法生成此数据列表的项目命令。请帮我。这是我的代码

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            categorybinding();
        }
    }

    public void categorybinding()
    {
        int totalcate = (from x in ebooks.books_category select x).Count();

        var ra = (from x in ebooks.books_category select x);

        DataList dl = new DataList();
        dl.ItemTemplate = new DatalistLabelColumnBind();
        dl.DataSource = ra;
        dl.DataBind();

        form1.Controls.Add(dl);
        dl.ItemCommand += new DataListCommandEventHandler(this.ItemCommandHandler);

    }

    public void ItemCommandHandler(object sender, DataListCommandEventArgs e)
    {
        Response.Redirect("NewPage.aspx?"+e.CommandArgument.ToString());
    }


//Create a new class implementing ITemplate
public class DatalistLabelColumnBind : ITemplate
{
    public DatalistLabelColumnBind()
    {
        //Add constructor 
    }

    public void InstantiateIn(Control container)
    {
        LinkButton label1 = new LinkButton();
        label1.DataBinding += new EventHandler(this.BindLabelColumn);
        container.Controls.Add(label1);
    }
    public void BindLabelColumn(object sender, EventArgs e)
    {

        LinkButton lbl = (LinkButton)sender;
        DataListItem  container = (DataListItem)lbl.NamingContainer ;
        String strVals = Convert.ToString(DataBinder.Eval(((DataListItem)container).DataItem, "books_category1"));
        lbl.CommandArgument = Convert.ToString(DataBinder.Eval(((DataListItem)container).DataItem, "id_books"));
        lbl.Text = strVals;
    }
}

我的问题:

  1. 我的数据列表很容易在页面上添加,但是当我点击数据列表中添加的链接按钮时,不会重定向到NewPage.aspx
  2. 帮帮我..

2 个答案:

答案 0 :(得分:0)

我认为您的Response.Redirect未解析到目标网页。

尝试:

Response.Redirect("~/NewPage.aspx?"+e.CommandArgument.ToString());

答案 1 :(得分:0)

categorybinding()中的if条件之后写Page_Load函数。 ItemCommandHandler肯定会奏效。