0

私はグリッドビューを使用しており、データテーブルにバインドされているため、autogeneratecolumns を true に設定しました。次に、リンクボタンを行の最後のセルに動的に追加すると、グリッドビューにリンクボタンが表示されます。現在、イベントをボタンに関連付けることができません。autogeneratecolumns が true に設定されたグリッドビューで動的に追加されたリンクボタンを使用すると、イベントがトリガーされるかどうかを知りたいです。これが私のコードにあるものです

    protected void btnSearch_Click(object sender, EventArgs e)
{

Datatable retval = // api call to a method. returns valida datatable

    if (retval != null)
    {
        if (retval.Rows.Count > 0)
        {
            GridViewSearchResult.Visible = true;
            GridViewSearchResult.DataSource = retval;
            GridViewSearchResult.DataBind();
    }
    }
}

protected void GridViewSearchResult_RowDataBound(object sender, GridViewRowEventArgs e)
{

    LinkButton lb;
    int j = e.Row.Cells.Count;
    string HeaderText;

    if (e.Row.RowType == DataControlRowType.DataRow)
    {

        lb = new LinkButton();
        lb.Text = "edit";
        //lb.CommandArgument = "edit";
        //lb.CommandName = "edit";
        //lb.Command += LinkButton_Command;
        //lb.Click += new EventHandler(onLinkClick);
        //ScriptManager.GetCurrent(this.Page).RegisterPostBackControl(lb);
        //e.Row.Cells[j-1].Controls.Add(l);
        e.Row.Cells[j-1].Controls.Add(lb);

        lb.Click += new EventHandler(lbtn_Click);

    }

}


protected void GridViewSearchResult_RowCommand(object sender, CommandEventArgs e)
{
    switch (e.CommandName.ToLower())
    {
        case "edit":
            Server.Execute("VerifyContact.aspx");
            break;
        default:
            break;
    }
}
protected void lbtn_Click(object sender, EventArgs e)
{
    //if (e. == "delete")
    {
        Server.Execute("VerifyContact.aspx");
    }
}
protected void LinkButton_Command(object sender, CommandEventArgs e)
{
    if (e.CommandName == "edit")
    {
        LinkButton lb = (LinkButton)sender;
        lb.Text = "OK";
    }
}

とASP

<div id="searchResultGrid">
        <asp:GridView ID="GridViewSearchResult"  runat="server" 
            OnRowDataBound="GridViewSearchResult_RowDataBound" 
            onselectedindexchanged="GridViewSearchResult_SelectedIndexChanged"
            onRowEditing = "GridViewSearchResult_RowEditing"
            onRowCommand = "GridViewSearchResult_RowCommand">

        </asp:GridView>
    </div>
4

1 に答える 1

0

また、問題を明確に理解していませんが、動的に生成された要素を処理できる古い live() 関数に関するものではありません。.delegate() でこれを処理できると思います。

于 2014-01-24T13:15:15.763 に答える