3

私は私が表示するためasp.net custom controlに使用しているに取り組んでいます。 クリックするとリピーターを起動する必要があります。 私が直面した問題は、発砲の能力ではなく、、およびプロパティがないことです。 達成するために、私はその中にプロパティ を作成し、ドライブし、追加しました。また、このプログラムのクリックイベントを呼び出してリピーターを起動できるように、を追加しました。 今私が直面している問題は、イベントを発生させたが、それでもイベントが発生していないことです。 この間引きされたものをどのようにガットするかについて何か考えはありますか?repeater controlradio buttons

ItemCommand eventRadioButton
RadioButtonItemCommend eventCommendArgumentCommandName

asp.net server controlRadioButtonCommendArgumentCommandName
ButtonbuttonItemCommand event
Button's clickItemCommand

4

1 に答える 1

2

ラジオボタンを押すと、リピーターItemCommandイベントを呼び出すことができます。OnCheckedChanged

主な問題は、によって期待される引数を作成する方法がわからないことだと思います。ItemCommandこれが役立つと私が信じる例です。

ASPX:

<asp:Repeater ID="rptColors" runat="server" onitemcommand="rptColors_ItemCommand">
    <ItemTemplate>
        <asp:RadioButton ID="rdbColour" Text='<%# Eval("Color") %>' AutoPostBack="true" runat="server" OnCheckedChanged="Checked" /> <br />
    </ItemTemplate>
</asp:Repeater>

背後にあるコード:

public class Colours
{
    public string Color { get; set; }
}

public partial class Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
            rptColors.DataSource = new List<Colours> { new Colours { Color = "Red" }, new Colours { Color = "Black" } };
            rptColors.DataBind();
        }
    }

    protected void Checked(object sender, EventArgs e)
    {
        foreach (RepeaterItem item in rptColors.Items)
        {
            RadioButton rdbColour = item.FindControl("rdbColour") as RadioButton;
            if (rdbColour.Text.Equals((sender as RadioButton).Text))
            {
                CommandEventArgs commandArgs = new CommandEventArgs("SomeCommand", rdbColour.Text);
                RepeaterCommandEventArgs repeaterArgs = new RepeaterCommandEventArgs(item, rdbColour, commandArgs);
                rptColors_ItemCommand(rdbColour, repeaterArgs);
            }
        }
    }

    protected void rptColors_ItemCommand(object source, RepeaterCommandEventArgs e)
    {
        //Runs when you select the radio button in the repeater
        System.Diagnostics.Debugger.Break();
    }
}
于 2013-02-20T08:45:31.090 に答える