我尝试过这几种方法,似乎没有一种方法适合我。我有一个formview,当用户进入编辑模式然后点击更新时,我想要一个模态弹出窗口显示,这样他们就可以输入一个关于他们更改内容的注释。
这是我的代码
<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显示它。我尝试通过在item命令中调用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;
}
}
所以我才意识到,如果我希望人们继续发帖,我需要编辑我的原始帖子,而不仅仅是添加注释,所以希望这会有所帮助。无论如何,我仍然无法让这个工作,我不知道是什么导致我的弹出窗口不能解雇?
答案 0 :(得分:0)
如果您想在用户进行编辑后弹出模态,我不会使用ItemCommand事件。
我没有太多使用FormViews,主要是GridViews。但我假设原则大致相同。
您是否尝试在ItemUpdated事件中显示模态?
我之前没有尝试过,但我想这样的事情可能有用:
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();
}
答案 1 :(得分:0)
经过多日的追踪和错误,我终于找到了为什么这不起作用。它归结为虚拟按钮。我将可见设置为false以隐藏按钮,并且由于某些原因不起作用。一旦我将其更改为style = display:none;它解雇了。很奇怪,没有错误抛出它只是永远不会弹出。