2013-06-24 4 views
0

Я хочу сделать make modalPopupExtender, когда щелкнуть строку в gridview. Я провел много времени. но не удалось.asp.net ModalPopupExtender selectindexchanged в gridView

Есть ли прямой способ сделать это? если да, то кто-то, пожалуйста, дайте мне пример кода.

Я понял, что ModalPopupExtender нуждается в кнопке для выполнения. поэтому я попытался запустить метод click нажатием кнопки и сделать всплывающее окно.

но я получил следующее сообщение об ошибке.

"Error 43 'ASP.admin_creation_aspx' does not contain a definition for 'clickbtn' and no extension method 'clickbtn' accepting a first argument of type 'ASP.admin_creation_aspx' could be found (are you missing a using directive or an assembly reference?)"

Эти коды я попробовал те ..

JavaScript

> <script type="text/javascript"> 
>  
>    function clickbtn() { 
>  
>     var myButton = document.getElementById('btnHidden'); 
>     myButton.click(); 
>    } 
>  
>   </script> 

ModalPopupExtender

<asp:ModalPopupExtender ID="InquiryPopupControlExtender" runat="server" TargetControlID="btnHidden" PopupControlID="InquiryPanel"       CancelControlID="btn_InquiryBack" DropShadow="True" BackgroundCssClass="modalBackground" DynamicServicePath="" Enabled="True"> 

grdInquiry_SelectedIndexChanged в GridView

protected void grdInquiry_SelectedIndexChanged(object sender, EventArgs e) 
    { 

     lbl_inqDateTime.Text = grdInquiry.Rows[grdInquiry.SelectedRow.RowIndex].Cells[9].Text; 
     lbl_inqUserName.Text = grdInquiry.Rows[grdInquiry.SelectedRow.RowIndex].Cells[1].Text; 
     lbl_InqNic.Text = grdInquiry.Rows[grdInquiry.SelectedRow.RowIndex].Cells[2].Text; 
     lbl_InqProduct.Text = grdInquiry.Rows[grdInquiry.SelectedRow.RowIndex].Cells[3].Text; 
     lbl_InqInquiryType.Text = grdInquiry.Rows[grdInquiry.SelectedRow.RowIndex].Cells[4].Text; 
     lb_InqFacilityNo.Text = grdInquiry.Rows[grdInquiry.SelectedRow.RowIndex].Cells[5].Text; 
     lbl_InqDescription.Text = grdInquiry.Rows[grdInquiry.SelectedRow.RowIndex].Cells[8].Text; 
     //lbl_InqFullName.Text = grdInquiry.Rows[grdInquiry.SelectedRow.RowIndex].Cells[0].Text; 
     lbl_InqEmail.Text = grdInquiry.Rows[grdInquiry.SelectedRow.RowIndex].Cells[7].Text; 
     lbl_InqTelephone.Text = grdInquiry.Rows[grdInquiry.SelectedRow.RowIndex].Cells[6].Text; 

     grdInquiry.Attributes.Add("onchange", "return clickbtn();"); 
} 

Кнопка события

protected void btnHidden_Click(object sender, EventArgs e) 
    { 
     InquiryPopupControlExtender.Show(); 
    } 
+0

Используйте Имя_команды в кнопке, а затем в rowcommand кнопку захвата события нажатия – skhurams

+0

использовать JQuery вместо Javascript skhurams

+0

прочитайте эту статью http://stackoverflow.com/questions/12973320/modalpopupextender-open-onclick-of-gridview-row-problems – skhurams

ответ

0

Вот как я сделал

режимное всплывающее окно

<%--========================== Modal Popup Starts =============================--%> 
<ajaxToolKit:ModalPopupExtender ID="mpeDetails" runat="server" TargetControlID="btnPopDummyOpen" 
    PopupControlID="panelModalPopUp" CancelControlID="imgBtnPopupClose" BackgroundCssClass="modalBackground"> 
</ajaxToolKit:ModalPopupExtender> 
<asp:Panel ID="panelModalPopUp" Style="display: none;" runat="server" Width="750px" 
    Height="450px" CssClass="modalBox"> 
    <div style="border: 1px solid #6CC5CB;"> 
     <div class="modalBoxCaption"> 
      <div id="popuPHeaderLeft"> 
       Print Bill 
      </div> 
      <div id="popuPHeaderRight"> 
       <asp:ImageButton ID="imgBtnPopupClose" ImageUrl="~/Resources/Images/delete.png" runat="server" /></div> 
     </div> 
     <div> 
      <div id="popUpContent" style="margin: 0px; background-color: White; height: 380px; 
       overflow: auto; width: 100%;" runat="server"> 
      </div> 
      <div style="height: 30px; padding: 5px 0px 5px 0px; background-color: White;" id="hide" 
       class="hide"> 
       Your content goes here 
      </div> 
     </div> 
    </div> 
    <div style="display: none"> 
     <asp:Button ID="btnPopDummyOpen" runat="server" /> 
    </div> 
</asp:Panel> 
<%--========================== Modal Popup Ends =============================--%> 

Мой GridView (Некоторые строки будут удалены изменения соответственно

<asp:GridView ID="gridViewMaterialIn" runat="server" AutoGenerateColumns="false" 
      AllowPaging="true" OnPageIndexChanging="gridViewMaterialIn_PageIndexChanging" 
      OnRowCommand="gridViewMaterialIn_RowCommand" PageSize="15" OnRowEditing="gridViewMaterialIn_RowEditing" 
      OnRowDeleting="gridViewMaterialIn_RowDeleting" GridLines="None" Width="100%"> 

      <Columns> 

       <asp:TemplateField ItemStyle-Width="10%" ItemStyle-HorizontalAlign="Center"> 
        <HeaderTemplate> 
         <center> 
          Actions</center> 
        </HeaderTemplate> 
        <ItemTemplate> 
         <asp:ImageButton ID="imgBtnEdit" CommandName="Edit" ToolTip="Edit a record." CommandArgument='<%#Eval("MatInMain_Id") %>' 
          runat="server" ImageUrl="~/resources/Images/edit.png" /> 
         <asp:ImageButton ToolTip="Delete a record." ID="imgBtnDelete" OnClientClick="return confirmDelete()" 
          CommandName="Delete" CommandArgument='<%#Eval("MatInMain_Id") %>' runat="server" 
          ImageUrl="~/resources/Images/delete.png" /> 
//======== On this button click i am opening my modal popup 
         <asp:ImageButton ToolTip="View & Print Bill." ID="ImageButtonViewDetails" CommandName="Print" 
          CommandArgument='<%#Eval("MatInMain_Id") %>' runat="server" ImageUrl="~/resources/Images/Print_Icon.png" /> 
        </ItemTemplate> 
       </asp:TemplateField> 
      </Columns> 
      <EmptyDataTemplate> 
       <center> 
        <b>No Data Found !!!</b></center> 
      </EmptyDataTemplate> 
     </asp:GridView> 

код позади

//=-=-=-= Row command event for Edit, Delete 
    protected void gridViewMaterialIn_RowCommand(object sender, GridViewCommandEventArgs e) 
    { 
     switch (e.CommandName) 
     { 
      case "Edit": 
       Response.Redirect("MaterialInward.aspx?Mat=" + e.CommandArgument.ToString().Trim()); 
       break; 
      case "Delete": 
       ClassMaterialInwardMain.deleteMaterialIn(Convert.ToInt32(e.CommandArgument)); 
       bindMaterialIn(); 
       break; 
      case "Print": 
       popUpContent.InnerHtml = ClassMaterialInwardMain.getPrintableMaterialIn(Convert.ToInt32(e.CommandArgument)); 
       mpeDetails.Show(); 
       break; 
     } 
    }