2012-03-07 18 views
0

私はASP.NET Webフォームアプリケーションを持っています。私のGridViewのOverviewGridViewでは、ボタンのonclickパネルdlModalPanelを制御ModalPopupExtender DisplayLinkMPEをトリガーdlButtonあります。 dlButton click dlModalPanelがポップアップするときに、(GridViewの行によって異なる)テキストを表示したいとします。私は私のaspxでこのコードを持っている:ModalPopupExtenderによって制御されるパネルに配置されたWebコントロールのプロパティをプログラムで設定する方法

Dim selectedRowIndex As Integer = Convert.ToInt32(e.CommandArgument) 

Dim displayLinkMPE As AjaxControlToolkit.ModalPopupExtender = OverviewGridView.Rows(selectedRowIndex).FindControl("displayLinkMPE") 

//Get itemUrl 

txtDownloadLink.Text = itemUrl 
displayLinkMPE.Show() 
ページの後に実行されるOverviewGridView RowCommandイベントハンドラによって処理されるdlButtonクリック背後にある私のコードでは

<asp:Button ID="dlButton" runat="server" CommandName="DisplayLink" CommandArgument="<%# TryCast(Container,GridViewRow).RowIndex %>" Text="Copy Link" /> 
<ajax:ModalPopupExtender ID="DisplayLinkMPE" runat="server" TargetControlID="dlButton" PopupControlID="dlModalPanel" CancelControlID="btnCancel" BackgroundCssClass="modalBackground" /> 

<asp:ScriptManager ID="ModalDialogScriptManager" runat="server" /> 
    <asp:Panel ID="dlModalPanel" runat="server" Style="display: none;"> 
     <table> 
      <tr align="center"> 
       <td colspan="2"> 
        <asp:Label ID="lblDownloadLink" runat="server" ForeColor="White">Copy Download Link:</asp:Label> 
        <asp:Label ID="txtDownloadLink" runat="server"></asp:Label> 
       </td> 
      </tr> 
      <tr> 
       <td align="right"> 
        <asp:Button ID="btnCancel" runat="server" Text="Cancel" /> 
       </td> 
      </tr> 
     </table> 
    </asp:Panel> 

はポストバックです

すべてが正しく表示されますが、テキストtxtダウンロードリンクは空のままです。どうすれば更新できますかテキスト?ありがとう

私も理解しているので、両方の言語での回答は大歓迎です!

答えて

1

チェックマットBerseth Check it hereすることにより、この優れた記事を、私はあなたが別の例このlinkを確認し、手動で

upatePanel1.Update(); 
  1. でのUpdatePanelを更新し、その中にあなたのモーダルコードをラップのUpdatePanel &を使用しなければならないと思います

を確認してください。完全に動作する例。テキストボックスの変更を確認するには、モーダルポップアップの更新パネルを手動で更新する必要があります。 ASPX

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
    <title></title> 
    <link rel="Stylesheet" type="text/css" href="css/StyleSheet.css" /> 
    <style type="text/css"> 
     .modal 
     { 
      background-color: Aqua; 
      width: 150px; 
      height: 100px; 
      padding: 6px; 
     } 
     .modalBackground 
     { 
      background-color: #CCCCFF; 
      filter: alpha(opacity=40); 
      opacity: 0.5; 
     } 
    </style> 
</head> 
<body> 
    <form id="form1" runat="server"> 
    <div> 
     <asp:UpdatePanel ID="upnGrid" runat="server"> 
      <ContentTemplate> 
       <asp:ScriptManager ID="ScriptManager1" runat="server"> 
       </asp:ScriptManager> 
       <asp:GridView CssClass=".Grid-blue" ID="GridView1" runat="server" AllowPaging="True" 
        AllowSorting="True" AutoGenerateColumns="False" DataKeyNames="ProductID" DataSourceID="LinqDataSource1"> 
        <Columns> 
         <asp:BoundField DataField="ProductID" HeaderText="ProductID" InsertVisible="False" 
          ReadOnly="True" SortExpression="ProductID" /> 
         <asp:BoundField DataField="ProductName" HeaderText="ProductName" SortExpression="ProductName" /> 
         <asp:BoundField DataField="SupplierID" HeaderText="SupplierID" SortExpression="SupplierID" /> 
         <asp:BoundField DataField="CategoryID" HeaderText="CategoryID" SortExpression="CategoryID" /> 
         <asp:BoundField DataField="QuantityPerUnit" HeaderText="QuantityPerUnit" SortExpression="QuantityPerUnit" /> 
         <asp:BoundField DataField="UnitPrice" HeaderText="UnitPrice" SortExpression="UnitPrice" /> 
         <asp:BoundField DataField="UnitsInStock" HeaderText="UnitsInStock" SortExpression="UnitsInStock" /> 
         <asp:BoundField DataField="UnitsOnOrder" HeaderText="UnitsOnOrder" SortExpression="UnitsOnOrder" /> 
         <asp:BoundField DataField="ReorderLevel" HeaderText="ReorderLevel" SortExpression="ReorderLevel" /> 
         <asp:CheckBoxField DataField="Discontinued" HeaderText="Discontinued" SortExpression="Discontinued" /> 
         <asp:TemplateField> 
          <ItemTemplate> 
           <asp:LinkButton ID="lbEdit" runat="server" OnClick="lbEdit_Click">Edit</asp:LinkButton> 
          </ItemTemplate> 
         </asp:TemplateField> 
        </Columns> 
       </asp:GridView> 
      </ContentTemplate> 
     </asp:UpdatePanel> 
     <asp:LinqDataSource ID="LinqDataSource1" runat="server" ContextTypeName="DataClassesDataContext" 
      EntityTypeName="" TableName="Products"> 
     </asp:LinqDataSource> 
    </div> 
    <ajaxToolkit:ModalPopupExtender BackgroundCssClass="modalBackground" ID="mpeDetails" 
     CancelControlID="btnClosePopup" TargetControlID="btnShowModal" PopupControlID="pnlDetails" 
     runat="server"> 
    </ajaxToolkit:ModalPopupExtender> 
    <asp:Button ID="btnShowModal" runat="server" Text="Button" Style="display: none" /> 
    <asp:Panel ID="pnlDetails" CssClass="modal" runat="server" Style="display: none"> 
     <asp:UpdatePanel ID="upnDetails" runat="server" UpdateMode="Conditional"> 
      <ContentTemplate> 
       <label> 
        ID:</label><asp:TextBox ID="txtID" runat="server"></asp:TextBox> 
       <br /> 
       <label> 
        Name:</label> 
       <asp:TextBox ID="txtName" runat="server"></asp:TextBox> 
       <br /> 
      </ContentTemplate> 
     </asp:UpdatePanel> 
     <div> 
      <asp:Button ID="btnClosePopup" runat="server" Text="Cancel" /></div> 
    </asp:Panel> 
    </form> 
</body> 
</html> 

.CS

protected void lbEdit_Click(object sender, EventArgs e) 
{ 
    LinkButton lbTemp = (LinkButton)sender; 

    if (lbTemp != null) 
    { 
     GridViewRow grow =(GridViewRow) lbTemp.NamingContainer; 
     int id = Convert.ToInt32(GridView1.DataKeys[grow.RowIndex][0].ToString()); 
     mpeDetails.Show(); 
     txtID.Text = id.ToString(); 
     upnDetails.Update(); 
    } 
} 
+0

おかげで、私は、リンクをクリックしたが、それはスパムのウェブサイトのように見えます。私はまた、Matt Bersethを検索していくつかのカテゴリをブラウズしようとしますが、広告を出すだけです。 – CiccioMiami

+0

私にとってうまく動作しますか?彼のライブデモとコードだけがダウンしています。スパムのウェブサイトではなく、自分のウェブサイトに表示されているコードでアイデアを得ることができます。 –

+0

ありがとう、私はあなたの2番目の例を見ていきます。私はmathberseth.comからのすべてのページが私をhttp://pagesinxt.com/?dn=mattberseth2.comと他のパラメータにリダイレクトする理由を知りません – CiccioMiami

関連する問題