1

GridView LinkBut​​ton で ModalPopup を開こうとしていますが、ポップアップの targetcontrolid に LinkBut​​ton ID を指定すると、受け入れられません。私を助けてください。

<asp:GridView ID="grdView" runat="server" AutoGenerateColumns="False" CellPadding="0"
            ForeColor="#333333" GridLines="None" onrowdatabound="grdView_RowDataBound">
    <Columns>
        <asp:TemplateField HeaderText="Dr. Photo">
            <ItemTemplate>
                <asp:Image ID="Image1" runat="server" Style="height: 80px; width: 100px;" ImageUrl='<%#  String.Format("~/Upload/Docters/" + Eval("ImgName")) %>' />
            </ItemTemplate>
        </asp:TemplateField>
        <asp:BoundField DataField="Name" HeaderText="Name" ItemStyle-Width="150px" >
        <ItemStyle Width="150px"></ItemStyle>
        </asp:BoundField>

        <asp:BoundField DataField="Qualification" HeaderText="Qualification"
            ItemStyle-Width="50px" >
        <ItemStyle Width="50px"></ItemStyle>
        </asp:BoundField>
        <asp:TemplateField HeaderText="Click to Contact">
        <ItemTemplate>
        <asp:LinkButton ID="popup" runat="server" Text="Click to Contact"></asp:LinkButton>
        </ItemTemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView>

<ajaxToolKit:ModalPopupExtender id="ModalPopupExtender1" runat="server"
    cancelcontrolid="btncancel" okcontrolid="btnSend"
    targetcontrolid="Button1" popupcontrolid="Panel1"
    popupdraghandlecontrolid="PopupHeader" drag="true" backgroundcssclass="ModalPopupBG">
</ajaxToolKit:ModalPopupExtender
4

3 に答える 3

6

私は自分のコードを配置しています

<asp:GridView ID="gvproducts" runat="server" DataKeyNames="sno,"  AutoGenerateColumns="false"  
OnRowCommand="gvproducts_RowCommand" OnPageIndexChanging="gvproducts_PageIndexChanging"
AllowPaging="true" PageSize="10" EmptyDataText="No Record Found" Width="100%"
BorderColor="#BDBDBD" HeaderStyle-BackColor="#7779AF" HeaderStyle-ForeColor="White" >
<Columns>
 <asp:TemplateField HeaderText="SNo" FooterStyle-HorizontalAlign="Center">
      <ItemTemplate>
            <span>
                <%#Container.DataItemIndex + 1%>
              </span>
        </ItemTemplate>
       </asp:TemplateField>
     <asp:BoundField DataField="indentid" HeaderText="Indent ID"></asp:BoundField>
     <asp:BoundField DataField="productid" HeaderText="Product ID" ></asp:BoundField>
      asp:BoundField DataField="productname" HeaderText="Product Name" ></asp:BoundField>
      <asp:BoundField DataField="quantity" HeaderText="Quantity"  ></asp:BoundField>
      <asp:BoundField DataField="unit" HeaderText="Unit" ></asp:BoundField>
       asp:BoundField DataField="requestby" HeaderText="Request By"></asp:BoundField>
      <asp:TemplateField HeaderText="Purchase" ItemStyle-HorizontalAlign="Center">
         ItemTemplate>
          <asp:LinkButton ID="lnkPurchase" runat="server" CommandName="Purchase" CommandArgument="<%#Container.DataItemIndex%>"
            ext="Purchase" ForeColor="blue">
             </asp:LinkButton>
               </ItemTemplate>
                /asp:TemplateField>
                 </Columns>
                </asp:GridView> 

//モーダルポップアップ

<input id="Hid_Sno" type="hidden" name="hddclick" runat="server" />
<ajaxToolkit:ModalPopupExtender ID="MPEPurchase" runat="server" TargetControlID="Hid_Sno"
            PopupControlID="pnlpurchase" RepositionMode="RepositionOnWindowResizeAndScroll"
            BackgroundCssClass="modalBackground" CancelControlID="btnxcancel" PopupDragHandleControlID="pnlpurchase" />

.CS

protected void gvproducts_RowCommand(object sender, GridViewCommandEventArgs e)
{
    if (e.CommandName.ToUpper() == "PURCHASE")
    {
        MPEPurchase.Show();
    }
}   
于 2013-09-24T06:43:54.983 に答える
0

この問題の最も簡単な解決策は、生成された Web ページの HTML 出力を確認し、Button コントロールのレンダリングされた正確な ID を見つけることだと思います。

それが見つかったら、次のコードの id を生成された id に置き換えます。

<ajaxToolKit:ModalPopupExtender id="ModalPopupExtender1" runat="server"
cancelcontrolid="btncancel" okcontrolid="btnSend"
targetcontrolid="Button1" popupcontrolid="Panel1"
popupdraghandlecontrolid="PopupHeader" drag="true" backgroundcssclass="ModalPopupBG">

ほとんどの場合、asp.net エンジンはコントロール ID を独自の ID に置き換えます。したがって、
targetcontrolid ="Button1" が起動していない可能性があります。

この問題を解決する別の方法は、次のようにコードを置き換えることです。

以下を次のように置き換えます。

 targetcontrolid ="Button1"

これ

targetcontrolid ='<%=Button1.ClientID%>'
于 2013-09-24T06:52:43.930 に答える