1

ユーザーの役割ごとに異なるオプションを用意しようとしています。これが私のコードです:

Private Function GetApprovedBy() As String
        If User.Identity.Name = "officer" Then
            Return "Approved by Officer"
        ElseIf User.Identity.Name = "manager" Then
            Return "Approved by Manager"
        Else
            Return String.Empty
        End If
    End Function

次に、私の gridview テンプレート内に次のものがあります。

  <EditItemTemplate>
                    <asp:DropDownList ID="ApprovalEdit" runat="server">
                       <asp:ListItem>Rejected</asp:ListItem>
                       <asp:ListItem Text=<%= GetApprovedBy() %>></asp:ListItem>

                    </asp:DropDownList>
                </EditItemTemplate>

ページを実行すると、

"Literal content ('<asp:ListItem Text=') is not allowed within a 'System.Web.UI.WebControls.ListItemCollection'."

これを達成する別の方法はありますか?できればDBなしで。

前もって感謝します!!

編集:私も試しました

<asp:ListItem><%= GetApprovedBy() %></asp:ListItem>

「このコンテキストではコードブロックはサポートされていません」というエラーで失敗しました

4

3 に答える 3

3

これに注意してください: バインディング (グリッド/リスト/リピーター) を使用する場合と使用<%# %>しない場合<%= %>

@adrianos の発言の例を次に示します。

Sub GridView1_RowDataBound(ByVal sender As Object, ByVal e As GridViewRowEventArgs)
    If e.Row.RowType = DataControlRowType.DataRow Then
        Dim ddl As DropDownList = CType(e.Row.FindControl("ApprovalEdit"), DropDownList)
        ' and then do the binding or add some items 

    End If
End Sub

(vb! ああああ私の目 T_T)

于 2010-10-08T06:54:14.363 に答える
2

Gridview RowDataBound イベントで実行されるメソッドを作成できます。

その方法では、ID でドロップダウン リストを検索します。見つかった場合は、ユーザー タイプ (マネージャー/役員) を確認し、関連する listItems をプログラムで追加します。

于 2010-10-08T06:50:34.053 に答える
0

あなたが望むのはこれだと思います:

<% ddlRooms.Items.Clear();

                       for (int i = 1; i <= 3; i++)
                       {
                           ddlRooms.Items.Add(new ListItem(i.ToString()  , i.ToString()));
                       }
                    %>
                        <asp:DropDownList ID="ddlRoomsCountToBook" runat="server">
                        </asp:DropDownList>

これは、ビューのドロップダウンリストに動的要素を追加する方法です。

于 2012-01-05T10:41:08.173 に答える