0

わかりましたので、私は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 番目のリストを追加しようとしていました。これにより、全体に問題が発生していました。それは今働いています。

4

2 に答える 2

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
}

幸運を!

于 2012-07-02T22:36:32.400 に答える
-1

あなたは簡単にこれを行うことができます

onclick='li_Click(this)'

編集:-
コンテンツ
を編集した後、サーバー側ですべてのコントロールを pageLoad() で作成して、サーバー側でクリック イベントを取得する必要があります。また、さらに多くのクライアント側スクリプトが必要になります
。 JavaScript 関数を呼び出してから、$.get または $.post を使用してデータをサーバーに送り返す方法

于 2012-07-02T22:25:14.287 に答える