Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 调试时,Gridview未显示在浏览器上_C#_Asp.net_Gridview - Fatal编程技术网

C# 调试时,Gridview未显示在浏览器上

C# 调试时,Gridview未显示在浏览器上,c#,asp.net,gridview,C#,Asp.net,Gridview,大家好, 我有一个web应用程序,它是一个基本的输入表单。输入表单有一个动态gridview,允许用户输入任意数量的行来输入行程信息 除了两个方面外,大多数事情都很顺利 我继续出现错误,说gridviewName不在当前上下文中 最后,更重要的问题在于,我的gridview不会出现在浏览器中的“调试”中(无论选择何种浏览器) 我已经研究了一周了,我想我需要一个新的视角来研究这个问题。在我的codebehind和aspx页面中,我可能会缺少什么,以显示我的gridview,并在codebehind

大家好,

我有一个web应用程序,它是一个基本的输入表单。输入表单有一个动态gridview,允许用户输入任意数量的行来输入行程信息

除了两个方面外,大多数事情都很顺利

  • 我继续出现错误,说gridviewName不在当前上下文中
  • 最后,更重要的问题在于,我的gridview不会出现在浏览器中的“调试”中(无论选择何种浏览器) 我已经研究了一周了,我想我需要一个新的视角来研究这个问题。在我的codebehind和aspx页面中,我可能会缺少什么,以显示我的gridview,并在codebehind页面中识别设计器文件

    <%@ Page Language="C#" AutoEventWireup="True" MasterPageFile="~/Site.Master" CodeBehind="intakeTripDetails.aspx.cs" Inherits="WebApplication2.TravelerInformation" %>
    
    <asp:Content ID="intakeTripDets" ContentPlaceHolderID="MainContent" runat="server">
            <fieldset>
                <legend>Trip Details</legend>
                <div class="input">
                    <p>Please enter trip details on the below form.  You can add additional rows as needed for each leg of our trip.</p>
                    <br />
                    <asp:Label runat="server" ID="lblMessage" Text="" ></asp:Label><br />
                    <label>Flight Number(s)</label><asp:TextBox runat="server"></asp:TextBox>
                    <br /><br /><br /><br />
                    <asp:GridView ID="tripDetails" runat="server" ShowFooter="True" ShowHeaderWhenEmpty="True"> 
                        <Columns>
                            <asp:BoundField DataField="RowNumber" HeaderText="" />
                            <asp:TemplateField HeaderText="Arrival Date & Time" >
                                <ItemTemplate>
                                    <asp:TextBox ID="arrivalDateTime" runat="server"></asp:TextBox>
                                </ItemTemplate>
                            </asp:TemplateField>
                            <asp:TemplateField HeaderText="Departure Date & Time">
                                <ItemTemplate>
                                    <asp:TextBox ID="departDateTime" runat="server"></asp:TextBox>
                                </ItemTemplate>
                            </asp:TemplateField>
                            <asp:TemplateField HeaderText="Country">
                                <ItemTemplate>
                                <asp:DropDownList ID="countryList" runat="server" AutoPostBack="true" AppendDataBoundItems="true">
                                     <asp:ListItem Value="-1">--SELECT--</asp:ListItem>
                                </asp:DropDownList>
                                    </ItemTemplate>
                            </asp:TemplateField>
                            <asp:TemplateField HeaderText="City">
                                <ItemTemplate>
                                <asp:TextBox ID="city" runat="server">
                                </asp:TextBox>
                                    </ItemTemplate>
                            <FooterStyle HorizontalAlign="Right" />
                            <FooterTemplate>
                                <asp:Button ID="btnAdd" runat="server" Text="Add New Row" />
                            </FooterTemplate>
                                </asp:TemplateField>
                            <asp:TemplateField>
                                <ItemTemplate>
                                    <asp:LinkButton ID="lnkRemove" runat="server">Remove</asp:LinkButton>
                                </ItemTemplate>
                            </asp:TemplateField>
                        </Columns>
                    </asp:GridView>   
                    <div class="btnfmt"><%--<asp:Button ID="prev" runat="server" Text="Previous: Traveler Information" />--%>
                    <asp:Button ID="submit" runat="server" text="Submit Trip"/> </div>
                </div>
           </fieldset> </asp:Content>
    
    
    行程详情
    请在下表中输入行程详情。您可以根据需要为我们的每段行程添加额外的行



    航班号




    --挑选-- 去除
    代码隐藏:

    using System;
    using System.Configuration;
    using System.Collections;
    using System.Collections.Generic;
    using System.Collections.Specialized;
    using System.Text;
    using System.Data;
    using System.Data.Sql;
    using System.Data.SqlClient;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.HtmlControls;
    
    namespace travelDetails
    {
        public partial class DynamicGrid : System.Web.UI.Page
        {
            protected void Page_Load(object sender, EventArgs e)
            {
                if (!Page.IsPostBack)
                {
                    SetInitialRow();
                }
            }
    
            private ArrayList countryData()
            {
                ArrayList arr = new ArrayList();
    
                arr.Add(new ListItem("Afghanistan", "1"));
                arr.Add(new ListItem("Aland Islands", "2"));
                arr.Add(new ListItem("Albania", "3"));
                arr.Add(new ListItem("Algeria", "4"));
                arr.Add(new ListItem("American Samoa", "5"));
                arr.Add(new ListItem("Andorra", "6"));
                arr.Add(new ListItem("Angola", "7"));
                arr.Add(new ListItem("Anguilla", "8"));
                arr.Add(new ListItem("Antarctica", "9"));
                arr.Add(new ListItem("Antigua and Barbuda", "10"));
                arr.Add(new ListItem("Argentina", "11"));
                arr.Add(new ListItem("Armenia", "12"));
                arr.Add(new ListItem("Aruba", "13"));
                arr.Add(new ListItem("Australia", "14"));
                arr.Add(new ListItem("Austria", "15"));
                arr.Add(new ListItem("Azerbaijan", "16"));
                arr.Add(new ListItem("Bahamas", "17"));
                arr.Add(new ListItem("Bahrain", "18"));
                arr.Add(new ListItem("Bangladesh", "19"));
                arr.Add(new ListItem("Barbados", "20"));
    
                return arr;
            }
    
                    private void FillDropDownList(DropDownList ddl)
            {
                ArrayList arr = countryData();
    
                foreach (ListItem item in arr)
                {
                    ddl.Items.Add(item);
                }
            }
    
                private void SetInitialRow()
                {
                    DataTable dt = new DataTable();
                    DataRow dr = null;
    
                    dt.Columns.Add(new DataColumn("RowNumber", typeof(string)));
                    dt.Columns.Add(new DataColumn("arrivalDateTime", typeof(DateTime)));
                    dt.Columns.Add(new DataColumn("departDateTime", typeof(DateTime)));
                    dt.Columns.Add(new DataColumn("city", typeof(string)));
                    dt.Columns.Add(new DataColumn("countryList", typeof(string)));
    
                    dr = dt.NewRow();
                    dr["RowNumber"] = 1;
                    dr["arrivalDateTime"] = string.Empty;
                    dr["departDateTime"] = string.Empty;
                    dr["city"] = string.Empty;
                    dt.Rows.Add(dr);
    
                    //What if I want to see the data for future reference
                    ViewState["CurrentTable"] = dt;
    
                    //Data is stuck here
                    tripDetails.DataSource = dt;
                    tripDetails.DataBind();
    
                    DropDownList ddl1 = (DropDownList)tripDetails.Rows[0].Cells[4].FindControl("countryList");
    
                    FillDropDownList(ddl1);
                }
    
                private void AddNewRowToGrid()
                {
                    int rowIndex = 0;
                    if (ViewState["CurrentTable"] != null)
                    {
                        DataTable dtCurrentTable = (DataTable)ViewState["CurrentTable"];
                        DataRow drCurrentRow = null;
    
                        if (dtCurrentTable.Rows.Count > 0)
                        {
    
                            drCurrentRow = dtCurrentTable.NewRow();
                            drCurrentRow["RowNumber"] = dtCurrentTable.Rows.Count + 1;
    
                            for (int i = 0; i < dtCurrentTable.Rows.Count - 1; i++)
                            {
    
                                //extract the textbox values
                                TextBox box1 = (TextBox)tripDetails.Rows[i].Cells[1].FindControl("arrivalDateTime");
                                TextBox box2 = (TextBox)tripDetails.Rows[i].Cells[2].FindControl("departDateTime");
                                TextBox box3 = (TextBox)tripDetails.Rows[i].Cells[3].FindControl("city");
    
                                dtCurrentTable.Rows[i]["arrivalDateTime"] = box1.Text;
                                dtCurrentTable.Rows[i]["departDateTime"] = box2.Text;
                                dtCurrentTable.Rows[i]["city"] = box3.Text;
    
                                //extract the ddl values
                                DropDownList ddl1 = (DropDownList)tripDetails.Rows[i].Cells[4].FindControl("countryList");
    
                                //Update the DataRow with the ddl items selected
                                dtCurrentTable.Rows[i]["countryList"] = ddl1.SelectedItem.Text;
                            }
    
                            //Adds new row to the data table
                            dtCurrentTable.Rows.Add(drCurrentRow);
    
                            //Again...we probably want to refer to this again
                            ViewState["CurrentTable"] = dtCurrentTable;
    
                            //Rebind the grid with the current data
                            tripDetails.DataSource = dtCurrentTable;
                            tripDetails.DataBind();
                        }
    
                        else
                        {
                            Response.Write("View State is Null");
                        }
    
                        //Set previous data on postbacks
                        SetPreviousData();
                    }
                }
    
                private void SetPreviousData()
                {
                    int rowIndex = 0;
                    if (ViewState["CurrentTable"] != null)
                    {
                        DataTable dt = (DataTable)ViewState["CurrentTable"];
                        if (dt.Rows.Count > 0)
                        {
                            for (int i = 0; i < dt.Rows.Count; i++)
                            {
                                TextBox box1 = (TextBox)tripDetails.Rows[i].Cells[2].FindControl("arrivalDateTime");
                                TextBox box2 = (TextBox)tripDetails.Rows[i].Cells[3].FindControl("departDateTime");
                                TextBox box3 = (TextBox)tripDetails.Rows[i].Cells[4].FindControl("city");
    
                                DropDownList ddl1 = (DropDownList)tripDetails.Rows[rowIndex].Cells[4].FindControl("countryList");
    
                                //Fill the ddl with data
                                FillDropDownList(ddl1);
    
                                if (i < dt.Rows.Count - 1)
                                {
                                    //Assign the value from the datatable to the textbox
                                    box1.Text = dt.Rows[i]["arrivalDateTime"].ToString();
                                    box2.Text = dt.Rows[i]["departDateTime"].ToString();
                                    box3.Text = dt.Rows[i]["city"].ToString();
    
                                    //Set the previously selected items to each ddl
                                    ddl1.ClearSelection();
                                    ddl1.Items.FindByText(dt.Rows[i]["countryList"].ToString()).Selected = true;
                                }
                                rowIndex++;
                            }
                        }
                    }
                }
    
                protected void btnAdd_Click(object sender, EventArgs e)
                {
                    AddNewRowToGrid();
                }
    
                protected void tripDetails_RowCreated(object sender, GridViewRowEventArgs e)
                {
                    if (e.Row.RowType == DataControlRowType.DataRow)
                    {
                        DataTable dt = (DataTable)ViewState["CurrentTable"];
                        LinkButton lb = (LinkButton)e.Row.FindControl("lnkRemove");
                        if (lb != null)
                        {
                            if (dt.Rows.Count > 1)
                            {
                                if (e.Row.RowIndex == dt.Rows.Count - 1)
                                {
                                    lb.Visible = true;
                                }
                            }
                            else
                            {
                                lb.Visible = true;
                            }
                        }
                    }
                }
    
                protected void lnkRemove_Click(object sender, EventArgs e)
                {
                    LinkButton lb = (LinkButton)sender;
                    GridViewRow gvRow = (GridViewRow)lb.NamingContainer;
                    int rowID = gvRow.RowIndex;
                    if (ViewState["CurrentTable"] != null)
                    {
                        DataTable dt = (DataTable)ViewState["CurrentTable"];
                        if (dt.Rows.Count > 1)
                        {
                            if (gvRow.RowIndex < dt.Rows.Count - 1)
                            {
    
                                //Remove selected row data and reset row number
                                dt.Rows.Remove(dt.Rows[rowID]);
                                ResetRowID(dt);
                            }
                        }
    
                        //And another future reference
                        ViewState["CurrentTable"] = dt;
    
                        //Bind the data to the gridview again with updated data
                        tripDetails.DataSource = dt;
                        tripDetails.DataBind();
                    }
    
                    //Set previous data on postback
                    SetPreviousData();
                }
    
                private void ResetRowID(DataTable dt)
                {
                    int rowNumber = 1;
                    if (dt.Rows.Count > 0)
                    {
                        foreach (DataRow row in dt.Rows)
                        {
                            row[0] = rowNumber;
                            rowNumber++;
                        }
                    }
                }
    
    使用系统;
    使用系统配置;
    使用系统集合;
    使用System.Collections.Generic;
    使用System.Collections.Specialized;
    使用系统文本;
    使用系统数据;
    使用System.Data.Sql;
    使用System.Data.SqlClient;
    使用System.Linq;
    使用System.Web;
    使用System.Web.UI;
    使用System.Web.UI.WebControl;
    使用System.Web.UI.HTMLControl;
    名称空间详细信息
    {
    公共部分类DynamicGrid:System.Web.UI.Page
    {
    受保护的无效页面加载(对象发送方、事件参数e)
    {
    如果(!Page.IsPostBack)
    {
    SetInitialRow();
    }
    }
    私有ArrayList countryData()
    {
    ArrayList arr=新的ArrayList();
    arr.Add(新列表项(“阿富汗”、“1”));
    arr.Add(新列表项(“阿兰群岛”、“2”));
    arr.Add(新列表项(“阿尔巴尼亚”,“3”));
    arr.Add(新列表项(“阿尔及利亚”,“4”));
    arr.Add(新清单项目(“美属萨摩亚”、“5”);
    arr.Add(新列表项(“安道尔”,“6”));
    arr.Add(新列表项(“安哥拉”、“7”));
    arr.Add(新的清单项目(“安圭拉”、“8”);
    arr.Add(新列表项(“南极洲”、“9”));
    arr.Add(新列表项(“安提瓜和巴布达”、“10”);
    arr.Add(新列表项(“阿根廷”、“11”));
    arr.Add(新列表项(“亚美尼亚”、“12”));
    arr.Add(新列表项(“阿鲁巴”、“13”));
    arr.Add(新列表项(“澳大利亚”、“14”));
    arr.Add(新列表项(“奥地利”、“15”));
    arr.Add(新列表项(“阿塞拜疆”,“16”));
    arr.Add(新列表项(“巴哈马”、“17”);
    arr.Add(新列表项(“巴林”、“18”));
    arr.Add(新列表项(“孟加拉国”、“19”));
    arr.Add(新的清单项目(“巴巴多斯”,“20”));
    返回arr;
    }
    私有void FillDropDownList(DropDownList ddl)
    {
    ArrayList arr=countryData();
    foreach(arr中的列表项)
    {
    ddl.Items.Add(项目);
    }
    }
    私有void SetInitialRow()
    {
    DataTable dt=新的DataTable();
    数据行dr=null;
    添加(新的数据列(“行数”,typeof(字符串));
    添加(新数据列(“arrivalDateTime”,typeof(DateTime));
    添加(新的数据列(“departDateTime”,typeof(DateTime));
    添加(新的数据列(“城市”,typeof(字符串));
    添加(新的数据列(“countryList”,typeof(string));
    dr=dt.NewRow();
    dr[“行数”]=1;
    dr[“arrivalDateTime”]=string.Empty;
    dr[“departDateTime”]=string.Empty;
    dr[“city”]=string.Empty;
    dt.Rows.Add(dr);
    //如果我想查看数据以备将来参考,该怎么办
    视图状态[“当前表”]=dt;
    //数据卡在这里
    tripDetails.DataSource=dt;
    tripDetails.DataBind();
    DropDownList ddl1=(DropDownList)tripDetails.Rows[0]。Cells[4]。FindControl(“countryList”);
    FillDropDownList(ddl1);
    }
    私有void AddNewRowToGrid()
    {
    int rowIndex=0;
    如果(ViewState[“CurrentTable”]!=null)
    {
    DataTable dtCurrentTable=(DataTable)视图状态[“CurrentTable”];
    DataRow drCurrentRow=null;
    如果(dtCurrentTable.Rows.Count>0)
    {
    drCurrentRow=dtCurrentTable.NewRow();
    drCurrentRow[“RowNumber”]=dtCurrentTable.Rows.Count+1;
    为了(