私は、formviewコントロールによってトリガされた部分的なポストバックの後に、formview editボタンの条件付き表示に問題があります。FormviewとMS-Ajax UpdatePanel
<asp:FormView ID="fvGenericDetails" runat="server">
<ItemTemplate>
<asp:Button ID="btnEditGenericDetails" runat="server" Visible="false" CausesValidation="False" CssClass="prepend-top" CommandName="Edit" Text="Edit Generic Details" />
</ItemTemplate>
ボタン条件付きでページロードイベントでユーザーprivilagesに基づいて表示されます:私はこのようなItemTemplateにに定義されて編集ボタンを持って
If CurrentUser.HasAdminStatus and fvGenericDetails.CurrentMode = FormViewMode.ReadOnly Then
Dim btnEditGenericDetails As Button = CType(Me.fvGenericDetails.FindControl("btnEditGenericDetails"), Button)
btnEditGenericDetails.Visible = True
End If
私がいる問題はとしてということですフォームビューコントロールはUpdatePanelにあり、コントロールが読み取り専用モードに戻ったときに部分的なポストバックがページロードイベントをトリガーしないため、編集ボタンが表示されません。この部分的なポストバックを可能にするために、どのようなイベントを使用する必要がありますか?
編集:ページをデバッグした後、部分的なポストバックの後、ページは実際にpage_loadイベントに遭遇しますが、formview.currentmode = edit:|
私は成功していないModeChangedイベントの使用を試みました。答えは、フォームビューコントロールを使用しないだけですか?あなたはイベントハンドラをItemDataBound でコードを置く場合...
Protected Sub FormView1_ItemDataBound(ByVal sender As Object, ByVal e As EventArgs) Handles FormView1.ItemDataBound
If e.NewMode = FormViewMode.ReadOnly Then
If CurrentUser.HasAdminStatus Then
Dim btnEditGenericDetails As Button = CType(Me.fvGenericDetails.FindControl("btnEditGenericDetails"), Button)
btnEditGenericDetails.Visible = True
End If
End If
End Sub
OK:
感謝:)
確かに正しいアプローチのように思えますが、残念ながら、ランタイムはオブジェクト参照がボタンを参照してインスタンスに設定されないようにします。 –