1

私はこのようなアイテムテンプレートを備えたリピーターコントロールを持っています:

 <ItemTemplate>
                    <table width="70%">
                        <tr id="rowSIC" runat="server">
                            <td width="10%">
                                <asp:Label ID="lblsSICCode" runat="server" Text='<%# Eval("SICCode") %>'></asp:Label>
                            </td>
                            <td width="70%">
                                <asp:Label ID="Label2" runat="server" Text='<%# Eval("IndustryName") %>'></asp:Label>
                            </td>
                            <td width="10%">
                                <asp:LinkButton ID="lnkSelect" runat="server" CommandArgument='<%# Eval("SICCode") %>'
                                    CommandName="MyUpdate">Select</asp:LinkButton>
                            </td>
                            <td width="10%">
                                <asp:Label ID="Label1" runat="server"></asp:Label>
                            </td>
                        </tr>
                    </table>
                </ItemTemplate>

リピーターの行の色を変更し、そのIDをビューステートに次のように保存するitemCommandイベント:

Protected Sub Repeater1_ItemCommand(source As Object, e As System.Web.UI.WebControls.RepeaterCommandEventArgs) Handles Repeater1.ItemCommand
        If e.CommandName.Equals("MyUpdate") Then
            Dim MyLabel As Label = TryCast(e.Item.FindControl("lblsSICCode"), Label)
            Dim Label1 As Label = TryCast(e.Item.FindControl("Label1"), Label)
            Dim rowSIC As HtmlTableRow = TryCast(e.Item.FindControl("rowSIC"), HtmlTableRow)

            If MyLabel IsNot Nothing Then
                ' Label1.Text = MyLabel.Text
                rowSIC.BgColor = "#FFDAB9"
                ViewState.Add("selectedItem", MyLabel.Text)
            End If
        End If
    End Sub

このページには、各ノードのIDと値のツリービューがあります。選択したノード変更イベントで、リピーターが選択したノードのテキストを変更したい。私はこのようなコードを書いています:

Protected Sub TreeView1_SelectedNodeChanged(sender As Object、e As System.EventArgs)はTreeView1.SelectedNodeChangedを処理します

    Dim EmployeeRepeater As Repeater = CType(Me.Form.Controls(1).FindControl("Repeater1"), Repeater)
    Dim EmployeeRepeaterItem As RepeaterItem
    Dim EmployeeName As Label

    For Each EmployeeRepeaterItem In Repeater1.Items

        Dim MyLabel As Label = TryCast(EmployeeRepeaterItem.FindControl("lblsSICCode"), Label)
        EmployeeName = CType(EmployeeRepeaterItem.FindControl("Label1"), Label)

        If ViewState("selectedItem") = TreeView1.SelectedValue Then
            EmployeeName.Text = TreeView1.SelectedNode.Text
        End If


    Next

End Sub

しかし、それはMyLabelテキストを動かしているわけではありません。それを修正する方法は?

ツリービューとリピーターの両方が!Page.Ispostbackイベントに入力されます

よろしく、Asif Hameed

4

1 に答える 1

0

この方法では、

TreeView1_SelectedNodeChanged(sender As Object、e As System.EventArgs)

MyLabelの値を設定することはありません。

MyLabel.Text="Hello";のようなものが必要です。

于 2012-05-21T11:12:59.103 に答える