2011-12-29 2 views
0

저는 AjaxToolKit을 사용 중이며 세부 정보 버튼이있는 gridview를 만들었습니다. ModalPopupExtender와 같이 세부 단추를 클릭 할 때 2 개의 gridviews가있는 패널을 열려고합니다. 또한 편집중인 행을 강조 표시해야합니다. 269 ​​ 문자 : : 7 코드 : 0 URI : http://localhost:5427/ModalPopUpInGridView/Default3.aspxAjaxToolkit ModalPopup Extender

나뿐만 아니라 모두 디자인/소스 확인 이 라인 잘못된 문자 : 나는 ...

웹 페이지 오류 세부 메시지가이 오류를 얻고있다 코드로하지만 잘못된 문자를 찾을 수 없습니다. 또한 런타임에 Details 버튼을 클릭하면 gridview가 사라집니다.

제안 사항?

HTML 부분 :

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default3.aspx.cs" Inherits="Default3" %> 
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="ajaxToolkit"%> 
<!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>Untitled Page</title> 

    <style> 
    .modalBackground 
    { 
    background-color:Gray; 
    filter:alpha(opacity=70); 
    opacity:0.7; 
    } 
    </style> 
</head> 
<body> 
    <form id="form1" runat="server"> 
    <ajaxToolkit:ToolkitScriptManager ID="scriptManager" runat="server" /> 
<div> 
<p style="background-color:AliceBlue; width:95%"> 
Example of using a 
ModalPopupExtender to edit the indivdual rows of a GridView.<br /> 
To test out the functionality, 
click the Details button of any of the rows and watch what happens.<br /> 
</p> 
<br /> 
<asp:UpdatePanel ID="updatePanel" runat="server" UpdateMode="Conditional"> 
<ContentTemplate> 
<asp:Label ID="lblTitle" runat="server" Text="Customers" BackColor="lightblue" Width="95%" /> 
<asp:GridView 
ID="gvCustomers" runat="server" 
AutoGenerateColumns="false" 
AllowPaging="true" AllowSorting="true" 
PageSize=10 OnPageIndexChanging="myGridView_PageIndexChanging" 
OnRowDataBound="Gridview_RowDataBound" EnableViewState="false" 
Width="95%"> 
<AlternatingRowStyle BackColor="AliceBlue" 
/> 
<HeaderStyle HorizontalAlign="Left" 
/> 
<Columns> 

<asp:TemplateField HeaderText="V"> 
<ItemTemplate> 
    <asp:CheckBox ID="chkVerified" runat="server" 
    Checked='<%# Eval("V") == "True" ? true : false %>'/> 
</ItemTemplate> 
</asp:TemplateField> 

<asp:TemplateField HeaderText="NT"> 
<ItemTemplate> 
    <asp:CheckBox ID="chkDeleted" runat="server" /> 
</ItemTemplate> 
</asp:TemplateField> 

<asp:TemplateField HeaderText="P"> 
<ItemTemplate > 
    <asp:Label ID="P" runat="server" Text='<%# Eval("P") %>' ></asp:Label> 
</ItemTemplate> 
</asp:TemplateField> 

<asp:TemplateField HeaderText="FN"> 
<ItemTemplate > 
    <asp:Label ID="FN" runat="server" Text='<%# Eval("FN") %>' ></asp:Label> 
</ItemTemplate> 
</asp:TemplateField> 

<asp:TemplateField HeaderText="MN" > 
<ItemTemplate > 
    <asp:Label ID="MN" runat="server" Text='<%# Eval("MN") %>' ></asp:Label> 
</ItemTemplate> 
</asp:TemplateField> 

<asp:TemplateField HeaderText="LN" > 
<ItemTemplate > 
    <asp:Label ID="LN" runat="server" Text='<%# Eval("LN") %>' ></asp:Label> 
</ItemTemplate> 
</asp:TemplateField> 

<asp:TemplateField HeaderText="Title"> 
<ItemTemplate > 
    <asp:Label ID="Title" runat="server" Text='<%# Eval("Title") %>' ></asp:Label> 
</ItemTemplate> 
</asp:TemplateField> 
<asp:TemplateField> 
<ItemTemplate> 
<asp:Button ID="btnViewDetails" 
runat="server" 
Text="Details" 
OnClick="btnViewDetails_Click" 
/> 
</ItemTemplate> 
    <ControlStyle Width="50px" /> 
    <HeaderStyle Width="60px" /> 
</asp:TemplateField> 


</Columns> 
</asp:GridView> 
</ContentTemplate> 
</asp:UpdatePanel> 
<asp:Button id="btnShowPopup" runat="server" style="display:none" /> 
<ajaxToolKit:ModalPopupExtender 
ID="mdlPopup" runat="server" TargetControlID="btnShowPopup" PopupControlID="pnlPopup" 
CancelControlID="btnClose" BackgroundCssClass="modalBackground" /> 
<asp:Panel ID="pnlPopup" runat="server" Width="500px" style="display:none"> 
<asp:UpdatePanel ID="updPnlCustomerDetail" runat="server" 
UpdateMode="Conditional"> 
<ContentTemplate> 
<asp:Label ID="lblCustomerDetail" runat="server" 
Text="Customer 
Detail" BackColor="lightblue" Width="95%" /> 
<asp:Panel ID="pnlPopupInner" runat="server"> 
<table> 
<tr><td>Test1</td></tr> 
<tr><td>Test2</td></tr> 
<tr><td>Test3</td></tr> 
</table> 
</asp:Panel> 
</ContentTemplate> 
</asp:UpdatePanel> 
<div align="right" style="width:95%"> 
<asp:Button 
ID="btnSave" runat="server" 
Text="Save" 
OnClientClick="alert(’Sorry, but I didnt implement save because I 
dont want my northwind database getting messed up.’); return false;" 
Width="50px" /> 
<asp:Button ID="btnClose" runat="server" Text="Close" Width="50px" /> 
</div> 
</asp:Panel> 
</div> 
</form> 
</body> 
</html> 

코드 뒤에 :

다음은 완전한 소스 코드

using System; 
using System.Drawing; 
using System.Data; 
using System.Configuration; 
using System.Collections; 
using System.Web; 
using System.Web.Security; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
using System.Web.UI.WebControls.WebParts; 
using System.Web.UI.HtmlControls; 
using MDRTeachersTest; //Webservice 

public partial class Default3 : System.Web.UI.Page 
{ 
    string sFullName = ""; 
    int firstRow = 0; 
    private int selectedIndex; 

    protected void Page_Load(object sender, EventArgs e) 
    { 
     sFullName = ""; 
     firstRow = -1; 
     if (!IsPostBack) 
     { 
      bool bTest = loginToWS(); 
      if (bTest == true) 
      { 
       gvCustomers.Visible = true; 
      } 
     } 
    } 

    private bool loginToWS() 
    { 
     //code to login to web service and fetch the object filled with data. 
    } 


    private static DataTable dtInfoPersonnel(Organization org) 
    { 
     string RowId = ""; 
     string PersonId = ""; 
     bool firsttime = true; 
     DataRow dr; 

     DataTable dtTemp = new DataTable(); 
     dtTemp.Columns.Add("V", System.Boolean.FalseString.GetType()); 
     dtTemp.Columns.Add("NT", System.Boolean.FalseString.GetType()); 
     dtTemp.Columns.Add("P"); 
     dtTemp.Columns.Add("FN"); 
     dtTemp.Columns.Add("MN"); 
     dtTemp.Columns.Add("LN"); 
     dtTemp.Columns.Add("Title"); 
     dtTemp.Columns.Add("Remove"); 
     dtTemp.Columns.Add("Vacant", System.Boolean.FalseString.GetType()); 
     dtTemp.Columns.Add("Status"); 
     dtTemp.Columns.Add("RowId"); 
     dtTemp.Columns.Add("PersonId"); 
     dtTemp.Columns.Add("Verified", System.Boolean.FalseString.GetType()); 
     dtTemp.Columns.Add("Substitute", System.Boolean.FalseString.GetType()); 
     dtTemp.Columns.Add("ComputerUser", System.Boolean.FalseString.GetType()); 
     dtTemp.Columns.Add("YearsExperience"); 
     dtTemp.Columns.Add("Closed", System.Boolean.FalseString.GetType()); 
     dtTemp.Columns.Add("AP", System.Boolean.FalseString.GetType()); 
     dtTemp.Columns.Add("CU", System.Boolean.FalseString.GetType()); 
     dtTemp.Columns.Add("PF", System.Boolean.FalseString.GetType()); 
     dtTemp.Columns.Add("historicAlphaCode"); 

     foreach (K12Personnel person in org.persons) 
     { 
      //Code to fill DATATABLE with the data. 
     } 

     return dtTemp; 
    } 


    protected void Gridview_RowDataBound(object sender, GridViewRowEventArgs e) 
    { 
     try 
     { 

      if (e.Row.RowType == DataControlRowType.DataRow) 
      { 
       //e.Row.Attributes.Add("onclick", Page.ClientScript.GetPostBackEventReference(gvCustomers, "Select$" + e.Row.RowIndex.ToString())); 

       //We're only interested in Rows that contain data 
       //get a reference to the data used to databound the row 
       DataRowView drv = ((DataRowView)e.Row.DataItem); 
       if (sFullName == drv["FN"].ToString() + drv["LN"].ToString()) 
       { 
        //If it's the same category as the previous one 
        //Increment the rowspan 
        for (int cellCount = 0; cellCount < 6; cellCount++) 
        { 
         if (gvCustomers.Rows[firstRow].Cells[cellCount].RowSpan == 0) 
          gvCustomers.Rows[firstRow].Cells[cellCount].RowSpan = 2; 
         else 
          gvCustomers.Rows[firstRow].Cells[cellCount].RowSpan += 1; 
         //Remove the cell 
         e.Row.Cells.RemoveAt(0); 
        } 
       } 
       else //It's a new category 
       {    //Set the vertical alignment to top 
        e.Row.VerticalAlign = VerticalAlign.Top; 
        //Maintain the category in memory 
        sFullName = drv["FN"].ToString() + drv["LN"].ToString(); 
        firstRow = e.Row.RowIndex; 
       } 
      } 


     } 
     catch (Exception ex) 
     { 
     } 
    } 

    protected void myGridView_PageIndexChanging(object sender, GridViewPageEventArgs e) 
    { 
     DataTable dtTemp1 = new DataTable(); 
     dtTemp1 = (DataTable)Session["PersonnelInfo"]; 
     dtTemp1.DefaultView.Sort = "LN " + "ASC"; 
     gvCustomers.DataSource = dtTemp1; 
     gvCustomers.PageIndex = e.NewPageIndex; 
     gvCustomers.DataBind(); 
    } 

    protected void btnViewDetails_Click(object sender, EventArgs e) 
    { 
     this.updPnlCustomerDetail.Update(); 
     this.mdlPopup.Show(); 
    } 

내가 코드를 실행

. 나에게 gridview를 표시하지만 브라우저의 왼쪽 하단 모서리에 "Invalid Character"오류가 표시됩니다. 페이징은 작동하지만 세부 단추를 클릭하면 전체 gridview가 사라집니다.

답변

1

이 때문에이 라인이 될 수는 :

OnClientClick="alert(’Sorry, but I didnt implement save because I dont want my northwind database getting messed up.’); return false;" 

당신은

This jsfiddle 내 의혹을 확인 '' 대신 을 사용해야합니다.

+0

답장을 보내 주셔서 감사합니다. 그러나 도움이되지 않았습니다. – McDee

관련 문제