【问题标题】:Binding dynamic datalist in C#在 C# 中绑定动态数据列表
【发布时间】:2014-05-09 21:37:56
【问题描述】:

我正在尝试创建与数据库绑定的动态数据列表。我可以轻松地创建它,但我无法创建此数据列表的项目命令。请帮我。下面是我的代码

    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

帮帮我..

【问题讨论】:

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


    【解决方案1】:

    Page_Load 中的 if 条件之后编写categorybinding() 函数。并且ItemCommandHandler 肯定会起作用。

    【讨论】:

      【解决方案2】:

      我认为您的 Response.Redirect 没有解析到预期的页面。

      试试:

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

      【讨论】:

      • 您是否也尝试过 Response.Redirect("/NewPage.aspx?"+e.CommandArgument.ToString());如果这不起作用,则在处理程序上设置一个断点并查看它是否停在那里。如果没有,您可能希望在 form1.Controls.Add(dl); 之前添加处理程序
      • 我在处理程序上设置了断点,是的,它停在那里。现在我该怎么办?我在 form1.Contols.Add(dl); 之前添加了处理程序但这不起作用
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多