如何从包含后期制作内容的网页发回信息?

时间:2012-07-02 22:22:36

标签: c# html html-lists

好的,所以我对html和网络都很陌生。现在我正在尝试生成列表项,然后将它们发回Web服务器,以便我知道该人试图获取的内容。

以下是生成列表项的代码:

foreach (var item in dataList) {
    MyDataList.InnerHtml += "<li><a runat='server' onclick='li_Click' id='" + item.Name + "-button'></a></li>";
}

再往下我有我的点击事件。

protected void li_Click(object sender, EventArgs e) {
    //How do I determine here which item was actually clicked?
}

我的问题是如何确定点击了哪个列表项?

顺便说一下,后面运行的代码是C#。

编辑1

LinkButton link = new LinkButton();
link.ID = "all-button";
link.Text = "All";
link.Click += new EventHandler(link_Click);
MyDataList.Controls.Add(link);

接下来,我的link_Click事件似乎永远不会出现断点。

void link_Click(object sender, EventArgs e) {
    if (sender != null) {
        if (sender.GetType() == typeof(LinkButton)) {
            LinkButton button = (LinkButton)sender;
            if (button.ID == "all-button") {

            }
        }
    }
}

我知道这一定是可能的我只是无法弄清楚我错过了什么。

修改2

好的我想我知道问题是什么。我试图在另一个列表中添加第二个列表。这导致整个事情出现问题。它现在正在运作。

2 个答案:

答案 0 :(得分:2)

以下是使用LinkBut​​tons的示例。

代码背后:

for (int i = 0; i < 10 ; i++)
{
    LinkButton link = new LinkButton() { ID = "link_" + i };
    link.Text = "Link " + i;
    link.Click+=new EventHandler(link_Click);
    this.Form.Controls.Add(link);
}

protected void link_Click(object sender, EventArgs e)
{
    //Every time a link is clicked it will get here in the server side
}
祝你好运!

答案 1 :(得分:-1)

你可以很容易地做到这一点

onclick='li_Click(this)'

编辑: -
编辑内容后 你必须在pageLoad()中创建服务器端的所有控件以获取服务器端的click事件..还需要更多的客户端脚本..
我认为你最好调用一个javascript函数,然后使用$ .get或$ .post将数据发送回服务器