C# 在gridview链接按钮上打开ajax模型弹出窗口

C# 在gridview链接按钮上打开ajax模型弹出窗口,c#,asp.net,ajax,C#,Asp.net,Ajax,我试图在GridView LinkButton上打开一个ModalPopup,但当我将LinkButton ID提供给弹出窗口的targetcontrolid时,它不接受。 请帮帮我 <asp:GridView ID="grdView" runat="server" AutoGenerateColumns="False" CellPadding="0" ForeColor="#333333" GridLines="None" onrowdatabound="grdV

我试图在GridView LinkButton上打开一个ModalPopup,但当我将LinkButton ID提供给弹出窗口的targetcontrolid时,它不接受。 请帮帮我

<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


为此,必须使用GridView的RowDataBound事件,因为“网格中的任何控件都不能直接访问”。因此,您需要在gridview的rowdatabound中找到该控件,然后设置Ajaxmodalpopup extender的“targetcontrolid”。

您必须使用gridview的rowdatabound事件来执行此操作,因为“网格中的任何控件都无法直接访问”。因此,您需要在gridview的rowdatabound中找到该控件,然后设置Ajaxmodalpopup extender的“targetcontrolid”。

我正在放置代码,它可以工作

<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> 

我把我的代码,它将工作

<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> 

我认为解决这个问题的最简单方法是查看网页生成的HTML输出,并找出按钮控件的确切呈现id

一旦找到,只需用生成的id替换下面代码中的id

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

targetcontrolid=''

我认为解决此问题的最简单方法是查看网页生成的HTML输出,并找出按钮控件的确切呈现id

一旦找到,只需用生成的id替换下面代码中的id

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

targetcontrolid=''

非常感谢巴关。你节省了我的关键时间。因此,再给你们一个+1。非常感谢你们巴关。你节省了我的关键时间。因此,再给你一个+1。
 targetcontrolid ="Button1"
targetcontrolid ='<%=Button1.ClientID%>'