2013-09-24 2 views
1

Я пытаюсь открыть ModalPopup на GridView LinkButton, но когда я даю LinkButton ID для целевого контроля всплывающих окон, он не принимает. Пожалуйста, помогите мне.открыть ajax modelpopup на кнопке ссылки gridview

<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 

ответ

0

Вы должны использовать GridView в RowDataBound событие для этого, как «любой элемент управления внутри сетки не непосредственно доступен». поэтому вам нужно найти элемент управления в rowdataound gridview, а затем установить «targetcontrolid» расширителя Ajaxmodalpopup.

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> 

// Модальные Popup

<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(); 
    } 
} 
+0

Большое спасибо Бхагавана. Вы сохранили мое критическое время. Следовательно, еще один +1 к вам. –

0

Я думаю, что самое простое решение этой проблемы чтобы увидеть сгенерированный вывод HTML на веб-странице и узнать точное отображение ed id элемента управления Button.

После того как это найдено, просто замените идентификатор в следующем коде на сгенерированный идентификатор.

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

Большую часть времени asp.net двигатель заменяет идентификатор элемента управления со своими собственными идентификаторами. Таким образом, ваш
targetcontrolid = "Button1" может не срабатывать.

Другой способ решения этой проблемы является замена кода следующим образом:

Заменить следующее с:

targetcontrolid ="Button1" 

этого

targetcontrolid ='<%=Button1.ClientID%>' 
Смежные вопросы