1

次に示すように、ボタンを含むItemTemplateでRadListViewコントロールを使用しています。

<ItemTemplate>
    <tr class="rlvI">
        //more TD elements here
        <td>
            <telerik:RadButton ID="ENABLEDToggle" runat="server" Width="75" ButtonType="StandardButton" AutoPostBack="true"
            ToggleType="CustomToggle" Checked='<%# Enabled_Converter(Eval("ENABLED")) %>' OnCheckedChanged="TaskStateChange_Clicked">
                <ToggleStates>
                    <telerik:RadButtonToggleState Text="Enabled" />
                    <telerik:RadButtonToggleState Text="Disabled" />
                </ToggleStates>
            </telerik:RadButton>
        </td>
    </tr>
</ItemTemplate>

最初の質問は、ボタンが押されたときにTaskStateChange_Clickedイベントハンドラーに入らないのはなぜですか?まるでイベントが発生しないかのようです。

次に、ボタンがクリックされるたびに、その行に関連付けられているオブジェクトを取得するにはどうすればよいですか?

4

1 に答える 1

2

最初の質問については、をどのようにバインドしているかを確認してくださいRadListView。このような問題は通常、コントロールがすべてのポストバックのデータにバインドされている場合に発生します。だからあなたが

void Page_Load(object sender, EventArgs e)
{
    ...
    RadListView1.DataSource = dataSource;
    RadListView1.DataBind();
    ...
}

に置き換えます

void Page_Load(object sender, EventArgs e)
{
    ...
    if (!this.IsPostBack)
    {
        RadListView1.DataSource = dataSource;
        RadListView1.DataBind();
    }
    ...
}

コメントから更新します。もう1つの理由は、ボタンのタイプがであるStandardButton一方で、仕様CheckedChangedではボタンのタイプがである場合にのみイベントが発生することを示している可能性がありますToggleButton

2番目の質問については、RadListViewのItemCommandイベントの使用を検討してください。CommandArgumentこのようにして、のプロパティを利用RadButtonし、オブジェクトのIDなどの必要な情報を渡すことができます。

于 2012-08-02T12:26:11.667 に答える