如何动态地将新行添加到网格视图中?

时间:2015-12-17 07:07:16

标签: c# asp.net gridview

我有一些带有一些填充数据的网格视图。以下数据集中只显示三个字段。这些是Jurisdiction - LicenseNumber - IssueDate。 请注意,CommonJurisdictions字段仅用于编程目的。

数据集包含

等数据

=============================================== ========================= CommonJurisdictions - Jurisdiction - LicenseNumber - IssueDate

Alabama,Alaska,New York - Alabama - 123 - 1/4/2013

阿拉巴马州,阿拉斯加州,纽约州 - 阿拉斯加州 - 345 - 3/4/2012

阿拉巴马州,阿拉斯加州,纽约州 - 纽约州 - 678 - 4/5/2014

=============================================== ==========================

我在aspx页面中有一个管辖区的复选框列表,用户可以选择新的管辖区域,并在字符串变量Jurisdiction中捕获。

现在,如果用户将选择更多的司法管辖区,它将被捕获在字符串管辖区,如阿拉巴马州,阿拉斯加州,纽约州,加利福尼亚州,佛罗里达州。

此字符串变量作为参数传递给类似

的方法
    private void FillJurisdictionGrid(string Jurisdiction, string IssueDate)
    {

        LicenceBL lbl = new LicenceBL(0);
        DataSet lds = new DataSet();
        lbl.FetchForEdit(lds, LicenseType);
        string CommonJurisdictions = lds.Tables[0].Rows[0]["CommonJurisdictions"].ToString();
       }

还有另一个变量字符串CommonJurisdictions包含类似的值 阿拉巴马州,阿拉斯加州,纽约(上述数据集中存在的值)。现在我想将CommonJurisdictions与Jurisdiction变量进行比较,以检查是否存在一些额外的司法管辖区。在上述情况下,它会发现加利福尼亚州和佛罗里达州还有两个额外的司法管辖区。我们也假设IssueDate参数包含日期值,如12/12/2015。现在我希望Grid应该填充下面的数据

=============================================== ========================= 司法管辖区 - LicenseNumber - IssueDate

阿拉巴马州 - 123 - 1/4/2013

阿拉斯加州 - 345 - 3/4/2012

纽约 - 678 - 2014年4月5日

加州 - null - 2015年12月12日

佛罗里达州 - null - 2015年12月12日

=============================================== ==========================

任何人都可以帮助我如何在FillJurisdictionGrid()方法上动态追加这两行......实际上这个方法是在点击确定按钮时调用的(当用户从​​复选框列表中选择管辖区并点击确定按钮时。

在aspx文件中,网格视图代码是

               <asp:GridView ID="grdView" AutoGenerateColumns="false" BorderWidth="0" runat="server" CssClass="table">
                            <Columns>


                              <asp:TemplateField HeaderText="Non-Resident License">
                                   <ItemTemplate>
                                      <asp:Label ID="lblJurisdiction" runat="server" />
                                   </ItemTemplate>
                               </asp:TemplateField>

                               <asp:TemplateField HeaderText="License Number">
                                   <ItemTemplate>
                                      <asp:TextBox ID="txtLicenseNumber" style="padding:12px 5px;" runat="server" />
                                       <br />
                                        <asp:RequiredFieldValidator ID="ValReqLN" Display="Dynamic" runat="server"
                                    ErrorMessage="License Number cannot be Blank." ControlToValidate="txtEffectiveDate"></asp:RequiredFieldValidator>
                                   </ItemTemplate>
                               </asp:TemplateField>

                                    <asp:TemplateField HeaderText="Effective Date">
                                   <ItemTemplate>
                                    <asp:TextBox ID="txtEffectiveDate" style="padding:12px 5px;" placeholder="(mm/dd/yyyy)" CssClass="datepiker" runat="server"></asp:TextBox>

                </asp:TemplateField>
                            </Columns>

                        </asp:GridView>

gridview通过以下代码行绑定到数据

        grdView.DataSource = lds.Tables[0].Select("Resident='No'"); ;
        grdView.DataBind();
        DataRow[] dtDummy = lds.Tables[0].Select("Resident='No'");
        foreach (GridViewRow row in grdView.Rows)
        {
            Label lblJurisdiction = row.FindControl("lblJurisdiction") as Label;
            TextBox txtDateIssued = row.FindControl("txtEffectiveDate") as TextBox;
            TextBox txtDateExpiration = row.FindControl("txtExpirationDate") as TextBox;
            TextBox txtLicenseNumber = row.FindControl("txtLicenseNumber") as TextBox;
            if (dtDummy[row.RowIndex]["Resident"].ToString() == "No")
                {
                    lblJurisdiction.Text = dtDummy[row.RowIndex]["NRState"].ToString();
                    txtLicenseNumber.Text = dtDummy[row.RowIndex]["LicenceNumber"].ToString();
                    DateTime DI = Convert.ToDateTime(dtDummy[row.RowIndex]["DateIssued"]);
                    txtDateIssued.Text = DI.ToShortDateString(); 

                }

        }

0 个答案:

没有答案