2010-12-01 7 views
2

動的に生成され、動的に生成されたSqlDataSourceにバインドされているモーダルポップアップに表示されるグリッドビューがあります。モーダルポップアップの内部でgridviewを編集するには?

私はうまくいけば、gridviewの自動編集機能を利用しました。

私の問題は、私は解決策herehereに見えたが...編集ボタンをクリックしたときにmodalpopupが原因私のGridViewのは、更新パネルにあるという事実にもかかわらず、完全なポストバックを閉じること

ですどちらも問題を解決しませんでした。私はまた、更新パネルなどと関連してModalPopupExtenderの配置に関する太陽の下のすべての組み合わせを試してみましたが、UpdateModeを条件付きに変更しようとしました。

マークアップ:

<span class="none"><asp:Button ID="btnDummy" runat="server" Text="Dummy" /></span> 
<ajax:ModalPopupExtender ID="mpLabel" runat="server" TargetControlID="btnDummy" BackgroundCssClass="modalBackground" PopupControlID="pnlLabels"></ajax:ModalPopupExtender> 
<asp:Panel ID="pnlLabels" DefaultButton="btnOk" Style="display:none;" runat="server">  
<div style="background-color:#fff;border:1px solid black;padding:7px;">     
<asp:UpdatePanel ID="upLabels" runat="server" ChildrenAsTriggers="true" EnableViewState="true" UpdateMode="Always"> 
    <ContentTemplate> 
       <asp:Panel ID="pnlGv" runat="server" style="max-height:420px;width:700px;border-bottom:1px #ccc solid;" ScrollBars="Vertical"> 
        <asp:PlaceHolder ID="phLabelInfo" runat="server"></asp:PlaceHolder>      
        <asp:PlaceHolder ID="phSDS" runat="server"></asp:PlaceHolder>  
       </asp:Panel>         
    </ContentTemplate>   
</asp:UpdatePanel> 
<asp:Button ID="btnOk" runat="server" Text="Ok" /> 
</div> 
</asp:Panel> 

背後にあるコード:私の経験で

Dim sdsLabels As New SqlDataSource 
    sdsLabels.ID = "sdsLabels" 
    sdsLabels.ConnectionString = System.Configuration.ConfigurationManager.AppSettings.Get("Generic Connection String") 
    sdsLabels.ProviderName = "System.Data.SqlClient" 
    sdsLabels.DeleteCommand = "DELETE FROM [JS_LABELS] WHERE [LABELID] = @LabelId" 
    sdsLabels.SelectCommand = "SELECT [LABELID], [CIRCUITNUMBER], [PANELNUMBER], [ADDITIONAL1], [ADDITIONAL2], [ADDITIONAL3] FROM [JS_LABELS] WHERE [QUOTEITEMID] = @QuoteItemId" 
    sdsLabels.UpdateCommand = "UPDATE [JS_LABELS] SET [CIRCUITNUMBER] = @CircuitNumber, [PANELNUMBER] = @PanelNumber, [ADDITIONAL1] = @Additional1, [ADDITIONAL2] = @Additional2, [ADDITIONAL3] = @Additional3 WHERE [LABELID] = @LABELID" 
    sdsLabels.SelectParameters.Add(New Parameter("QuoteItemId", Data.DbType.Int32, e.CommandArgument.ToString())) 
    sdsLabels.DeleteParameters.Add(New Parameter("LabelId", Data.DbType.Int32)) 

    Dim paramCollection As New ParameterCollection 
    paramCollection.Add("CircuitNumber", Data.DbType.String, "") 
    paramCollection.Add("PanelNumber", Data.DbType.String, "") 
    paramCollection.Add("Additional1", Data.DbType.String, "") 
    paramCollection.Add("Additional2", Data.DbType.String, "") 
    paramCollection.Add("Additional3", Data.DbType.String, "") 
    paramCollection.Add("LabelId", Data.DbType.Int32, "0") 


    Dim ph As New PlaceHolder 
    ph = CType(PageHelper.RecursiveFindControl(Page, "phSDS"), PlaceHolder) 
    ph.Controls.Add(sdsLabels) 

    Dim gv As New GridView 
    ph = CType(PageHelper.RecursiveFindControl(Page, "phLabelInfo"), PlaceHolder) 
    ph.Controls.Add(gv) 

    gv.CssClass = "LabelsTable" 
    Dim LabelId() As String = {"LabelId"} 
    gv.DataKeyNames = LabelId 
    gv.EnableViewState = True 
    gv.AutoGenerateEditButton = True 
    AddHandler gv.RowCommand, AddressOf gv_rowCommand 
    gv.DataSourceID = sdsLabels.ID 
    gv.DataBind() 

    mpLabel.Show() 
+0

これはまだ答えられていませんか?私は同じ問題を抱えています! – jlg

答えて

0

、ModalPopupExtenderがポストバックで常に密接な意志を明示的にトリガされたイベントではないにそれを聞いていない限りポストバックによる:

btnSubmitRequest_ModalPopupExtender.Show(); 
+0

あなたは何を意味するのか分かりません。私はgridviewのrowcommandにフックしてmpLabels.Showを呼び出してみましたが、ポストバックが最初に起動し、データソースが発生したときに再バインドされたため、ポストバックが発生したとは限りません。また、gridviewは更新パネルにあるので、モーダルポップアップが消えるのを防ぐ*ポストバックが発生するはずです。 – plntxt

関連する問題