0

私はこれをいくつかの方法で試しましたが、どれもうまくいかないようです。フォームビューがあり、ユーザーが編集モードに入ってから更新をクリックすると、変更内容に関するメモを入力できるようにモーダル ポップアップが表示されます。

これが私のコードです

<ajaxToolkit:ModalPopupExtender ID="SubmitButton_ModalPopupExtender" 
 runat="server" OkControlID="EditNoteButton" PopupControlID="EditNotePanel" 
 BehaviorID="MPE" BackgroundCssClass="modalBackground"
 TargetControlID="DummyButton">
</ajaxToolkit:ModalPopupExtender>

<asp:Panel ID="EditNotePanel" runat="server" CssClass="style105" Height="23px"            style="display: none">
<asp:TextBox ID="EditNoteBox" runat="server" CssClass="style106" Height="68px" Width="223px">What Did You Change?</asp:TextBox> <br />
<asp:Button ID="EditNoteButton" runat="server" CssClass="style107" Height="29px" Text="Ok" Width="52px" CommandName="update" /> <br />
</asp:Panel>

C#

protected void ClientInformationForm_ItemCommand(Object sender, FormViewCommandEventArgs e)
    {
      //case statements

    if (ClientInformationForm.CurrentMode == FormViewMode.Edit)
    {
        SubmitButton_ModalPopupExtender.TargetControlID = ((Button)ClientInformationForm.FindControl("SubmitButton")).UniqueID;
    }

私が読んだことから、それはうまくいくはずです。clientclick で JavaScript を使用して表示しようとしました。itemcommand で modal.show() を呼び出して表示しようとしましたが、どれも表示されません。パネルまたはポップアップがフォームビューの内側にあるか外側にあるかは問題ですか?

 protected void Page_Load(object sender, EventArgs e)
 {

    if (!this.IsPostBack && Session["CurrentAccountId"] != null)
    {
        AddressTypeddl.DataBind();
        ShippingAddressddl.DataBind();
        AddressForm.DataBind();
    }


    if (ClientInformationForm.DataItemCount == 0)
    {
        ClientInformationForm.BackColor = Color.FromArgb(0xd9e2bf);
    }
    else
    {
        ClientInformationForm.BackColor = Color.White;

    }


    if (Session["CurrentAccountId"] == null)
    {    
        NoteBox.Visible = false;
        NewNoteButton.Visible = false;
        NoteTypeddl.Visible = false;
        NoteLabel.Visible = false;
        NoteTypeLabel.Visible = false;
        NewNoteLabel.Visible = false;
        CreditCardView.Visible = false;
        NewAccountButton.Visible = true;
        AddressTypeddl.Visible = false;
        AddressLabel.Visible = false;
        AddressForm.Visible = false;
    }
    else
    {

        NoteBox.Visible = true;
        NewNoteButton.Visible = true;
        NoteTypeddl.Visible = true;
        NoteLabel.Visible = true;
        NoteTypeLabel.Visible = true;
        NewNoteLabel.Visible = true;
        CreditCardView.Visible = true;
        NewAccountButton.Visible = false;
        AddressTypeddl.Visible = true;
        AddressLabel.Visible = true;
        AddressForm.Visible = true;

    }

}

そのため、人々に投稿を続けてもらいたい場合は、メモを追加するだけでなく、元の投稿を編集する必要があることに気づきました。これが役立つことを願っています. とにかく、私はまだこれを機能させることができず、ポップアップが起動しない原因がわかりませんか?

4

2 に答える 2

0

何日にもわたる試行錯誤の末、ようやくこれが機能しない理由がわかりました。ダミーボタンにたどり着きました。ボタンを非表示にするために表示をfalseに設定していましたが、何らかの理由で機能しません。style= display:none; に変更したら うまく焼けました。エラーがスローされなかったのは奇妙で、ポップアップすることはありませんでした。

于 2014-01-10T18:24:25.973 に答える
0

ユーザーが編集を行った後にモーダルをポップアップ表示する場合は、ItemCommand イベントを使用しません。

FormViews はあまり使用していませんが、主に GridViews です。しかし、原則はほとんど同じだと思います。

ItemUpdated イベントでモーダルを表示しようとしましたか?

http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.formview.itemupdated(v=vs.110).aspx

これまで試したことはありませんが、次のようなことがうまくいくと思います。

 protected void ClientInformationForm_ItemUpdated(Object sender, FormViewUpdatedEventArgs e)
 {
      //capture ID of the updated record, and perhaps store it in a HiddenField that's in the modal
       SubmitButton_ModalPopupExtender.Show();
 }
于 2013-10-29T19:31:20.983 に答える