Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/272.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 - Fatal编程技术网

C# 文本框未显示在GridView中

C# 文本框未显示在GridView中,c#,asp.net,C#,Asp.net,我正在手动创建一个datatable以将其应用于gridview,而textbox列没有显示出来。其他列工作正常,但我需要创建一个包含可输入文本框的列 干杯, 克里斯 protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { int numPrizes = GetNumPrizes

我正在手动创建一个datatable以将其应用于gridview,而textbox列没有显示出来。其他列工作正常,但我需要创建一个包含可输入文本框的列

干杯, 克里斯

protected void Page_Load(object sender, EventArgs e)
            {
                if (!IsPostBack)
                {
                    int numPrizes = GetNumPrizes();//if there are voided prizes.

                    DataTable dt = new DataTable();
                    gvTournamentData.Columns.Clear();

                    //PrizeNumber
                    //Add the columns to the grid view
                    BoundField PrizeNumberBF = new BoundField();
                    PrizeNumberBF.DataField = "PrizeNumber";
                    PrizeNumberBF.SortExpression = "PrizeNumber";
                    PrizeNumberBF.HeaderText = "";
                    gvTournamentData.Columns.Add(PrizeNumberBF);
                    dt.Columns.Add("PrizeNumber");

                    //Place
                    //Add the columns to the grid view
                    BoundField PlaceBF = new BoundField();
                    PlaceBF.DataField = "Place";
                    PlaceBF.SortExpression = "Place";
                    PlaceBF.HeaderText = "Place";
                    gvTournamentData.Columns.Add(PlaceBF);
                    dt.Columns.Add("Place", typeof(String));
                    DataTable dtPlaces = GetPlaces(1043); //hard coded for now

                    ////PrizeName //BFOP Prize
                    //Add the columns to the grid view
                    BoundField PrizeNameBF = new BoundField();
                    PrizeNameBF.DataField = "BFOP Prize";
                    PrizeNameBF.SortExpression = "BFOP Prize";
                    PrizeNameBF.HeaderText = "BFOP Prize";
                    gvTournamentData.Columns.Add(PrizeNameBF);
                    dt.Columns.Add("BFOP Prize", typeof(String));
                    DataTable dtPrizeNames = GetPrizeNames(1043); //hard coded for now

                    ////NickName
                    dt.Columns.Add("NickName", typeof(TextBox));

                    numPrizes = 7; //hard coded for now
                    for (int index = 1; index <= numPrizes; index++)
                    {
                        // Start at Prize one instead of Prize zero
                        string ID = index.ToString();
                        DataRow row = dt.NewRow();
                        row["PrizeNumber"] = ID + ")";
                        row["Place"] = dtPlaces.Rows[index - 1]["Place"];
                        row["BFOP Prize"] = dtPrizeNames.Rows[index - 1]["PrizeName"];
                        //TextBox nicknameTB = new TextBox();
                        //nicknameTB.Text = ID + ")";
                        //row["NickName"] = nicknameTB;
                        /* for (int x = 0; x < numCols; x++)
                         {
                             PopulatePrizeNameLabel(ID);
                             PopulateAddButton(ID);
                         }*/
                        dt.Rows.Add(row);
                    }

                    gvTournamentData.DataSource = dt;
                    gvTournamentData.DataBind();
                    gvTournamentData.Visible = true;
                }
    }
受保护的无效页面加载(对象发送方,事件参数e)
{
如果(!IsPostBack)
{
int numPrizes=GetNumPrizes();//如果有无效的奖品。
DataTable dt=新的DataTable();
gvTournamentData.Columns.Clear();
//PrizeNumber
//将列添加到轴网视图中
BoundField PrizeNumberBF=新的BoundField();
PrizeNumberBF.DataField=“PrizeNumber”;
PrizeNumberBF.SortExpression=“PrizeNumber”;
PrizeNumberBF.HeaderText=“”;
gvTournamentData.Columns.Add(PrizeNumberBF);
dt.列。添加(“PrizeNumber”);
//放置
//将列添加到轴网视图中
BoundField PlaceBF=新的BoundField();
PlaceBF.DataField=“Place”;
PlaceBF.SortExpression=“Place”;
PlaceBF.HeaderText=“地点”;
gvTournamentData.Columns.Add(PlaceBF);
添加(“位置”,类型(字符串));
DataTable dtPlaces=GetPlaces(1043);//目前已硬编码
////PrizeName//BFOP奖
//将列添加到轴网视图中
BoundField PrizeNameBF=新的BoundField();
PrizeNameBF.DataField=“BFOP Prize”;
PrizeNameBF.SortExpression=“BFOP Prize”;
PrizeNameBF.HeaderText=“BFOP Prize”;
gvTournamentData.Columns.Add(PrizeNameBF);
添加(“BFOP大奖”,类型为(字符串));
DataTable dtPrizeNames=GetPrizeNames(1043);//目前已硬编码
////绰号
添加(“昵称”,类型(文本框));
numPrizes=7;//目前已硬编码

对于(int index=1;index为什么不在表单页面中使用
TemplateColumn

例如:

<asp:GridView>
<Columns>
  <asp:TemplateColumn HeaderText="Place">
     <ItemTemplate>
       <%#Eval("Place")%>
     </ItemTemplate>
   </asp:TemplateColumn>
   <asp:TemplateColumn HeaderText="NickName">
      <ItemTemplate>         
         <asp:TextBox ID="txt_NickName" runat="server" Width="85px"                 Text='<%#Eval("NickName")%>'>
                                    </asp:TextBox>
                    </ItemTemplate>
      </ItemTemplate>
   </asp:TemplateColumn>
</Columns>
</asp:GridView>
然后,它会将所有这些字段呈现到模板中

将此链接用作参考:

gvTournamentData.DataSource = dt;
gvTournamentData.DataBind();