取決於您要刷新的控件是否爲DataBound()
。
換句話說,您是否可以通過使用DataBind()
方法調用強制控件重新加載自身,使用相同或新數據來強制控件重新加載? 大多數GUI控件都有DataBind()
方法,但如果控件實際上沒有使用數據來工作,那麼它是無用的!
這就是爲什麼在你的情況下,你的面板不是用新數據「刷新」的,因爲在面板上使用DataBind()什麼都不做。在整個GridView上使用數據綁定()是一個不同的故事,應該工作。可能會在整個地段放置一個UPDATEPANEL?如果你這樣做,你必須小心,你的正常編輯和行上的其他命令將繼續工作。
然而,你可以做的是放置modalpopupextender
你TemplateField
內,並使用「絕招」,你可以保持您的服務器後背上,仍然觸發彈出面板。
即
<asp:UpdatePanel ID="upADDMAIN" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:Button ID="btnADD" runat="server" Text="NEW LOGIN" BackColor="Blue" Font-Bold="True" ForeColor="#FFFFCC" OnClick="btnADD_Click" />
<asp:Button ID="btnDUM" runat="server" style="display:none" />
<div style="height:20px">
</div>
<ajaxToolkit:ModalPopupExtender ID="mpeADD" runat="server"
targetcontrolid="btnDUM"
popupcontrolid="upADD"
backgroundcssclass="modelbackground">
</ajaxToolkit:ModalPopupExtender>
<asp:UpdatePanel ID="upAdd" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:Panel ID="pnlADD" runat="server" Width="700px" HorizontalAlign="Center" CssClass="auto-style10" Height="200px">
..
..
<div id="puFTR" class="auto-style17" style="vertical-align: middle">
<asp:Button id="btnOK" runat="server" Text="OK" style="width: 80px" OnClick="btnOK_Click" />
<asp:Button id="btnCAN" runat="server" Text="CANCEL" style="width: 80px" OnClick="btnCAN_Click" CausesValidation="False" />
</div>
</asp:Panel>
</ContentTemplate>
</asp:UpdatePanel>
</ContentTemplate>
</asp:UpdatePanel>
正如你可以看到,btnDUM
控制是一個虛擬拿到MPE的工作,但它沒有實際使用,因爲它是由style="display:none"
標籤隱藏起來。
但是,btnADD
確實可行,因爲它在服務器端調用Click()
方法,該方法會刷新新行上的數據。您可能需要使用一些jScript將ROWINDEX
傳遞給Click()方法,以使其與GridView
配合使用。
順便說一句,在我的情況「控制」手動MPE的Click()方法...
protected void btnADD_Click(object sender, EventArgs e)
{
ClearADDform();
mpeADD.Show();
}
protected void ClearADDform()
{
txtLOGIN.Text = string.Empty;
cbISActive.Checked = true;
txtPWD.Text = string.Empty;
ddlAgent.SelectedIndex = -1;
}
在我的情況,上面的代碼示例是一個GridView外,所以你需要調整。
但問題是,您仍然可以使用Ajax彈出窗口進行服務器端調用!
祝你好運。
嗨,感謝您的評論,我正在嘗試這樣做,我在Page_Load方法中有一段代碼,堅強但不起作用 - 代碼被解僱了,但數據網格未被重新綁定。最後,我通過將整個自定義控件(彈出式頁面)放入更新面板來解決問題,此後,每次面板彈出時,頁面都會更新/刷新。 – Frankie
幹得好先生!你可能想更新這個問題的標題,在它前面有[解決]。 – jadarnel27
@ jadarnel27:不,我們不會在這裏標題[解決]。 –