gpt4 book ai didi

c# - asp.net 多个 gridviews - 不显示数据

转载 作者:行者123 更新时间:2023-11-30 12:58:46 25 4
gpt4 key购买 nike

我有两个 GridView,我想显示来自两个 DataTable 的数据。 aspx 文件中有我的 GridViews 代码:

 <div class="col-sm-5">
<div class="col-sm-6">
<asp:GridView ID="gvSource" runat="server" ShowHeaderWhenEmpty="true" CssClass="drag_drop_grid GridSrc" AutoGenerateColumns="false">
<Columns>
<asp:TemplateField>
<HeaderTemplate>Miejsca (wybór)</HeaderTemplate>
<ItemTemplate>
<asp:Label ID="lblNazwa" runat="server" Text='<%# Eval("Nazwa") %>' />
<asp:HiddenField ID="IDVal" ClientIDMode="Static" runat="server" Value='<%# Eval("ID") %>' />
</ItemTemplate>
</asp:TemplateField>

</Columns>

</asp:GridView>
</div>


<div class="col-sm-6 pull-left">
<asp:GridView ID="gvDest" runat="server" ShowHeaderWhenEmpty="true" EmptyDataText="No data to display" CssClass="drag_drop_grid GridDest" AutoGenerateColumns="false">
<Columns>
<asp:TemplateField>
<HeaderTemplate>Miejsca (należące do wycieczki)</HeaderTemplate>
<ItemTemplate>
<asp:Label ID="lblNazwa" runat="server" Text='<%# Eval("Nazwa") %>' />
<asp:HiddenField ID="IDVal" ClientIDMode="Static" runat="server" Value='<%# Eval("Id") %>' />
</ItemTemplate>
</asp:TemplateField>

</Columns>

</asp:GridView>
</div>
</div>

这是我的代码隐藏:

protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{

if (!string.IsNullOrWhiteSpace(Request.QueryString["id"]))
{
recID = int.Parse(Request.QueryString["id"]);
if (recID > 0)
{
DataTable dt = new DataTable();
DataTable dt2 = new DataTable();
dt.Columns.AddRange(new DataColumn[2] { new DataColumn("Id", typeof(int)), new DataColumn("Nazwa", typeof(string)) });
dt2.Columns.AddRange(new DataColumn[2] { new DataColumn("Id", typeof(int)), new DataColumn("Nazwa", typeof(string)) });

Miejsca ms = new Miejsca();
Hashtable hs = new Hashtable();


foreach (var lst in ms.PobierzMiejscaLista(hs))
{

dt.Rows.Add(lst.Id , lst.Nazwa);
}

gvSource.UseAccessibleHeader = true;
gvSource.DataSource = dt;

gvSource.DataBind();

dt.Rows.Clear();
dt.Rows.Add();

Wycieczka w = (new Wycieczki()).PobierzWycieczke(recID);



foreach (var lst in w.Miejsca)
{
Miejsce tempM = (new Miejsca()).PobierzMiejsce(lst.Id_Miejsce.Id);
dt2.Rows.Add(tempM.Id, tempM.Nazwa);

}
int ilosc = dt2.Rows.Count;
//gvDest.UseAccessibleHeader = true;
gvDest.DataSource = dt2;
gvDest.DataBind();


//Page.ClientScript.RegisterClientScriptBlock(typeof(Page), "TablicaMiejsc", "loadPlacesIntoTrip("+recID+");", true);
}


}
else
{
DataTable dt = new DataTable();
dt.Columns.AddRange(new DataColumn[2] { new DataColumn("Id"), new DataColumn("Nazwa") });


Miejsca ms = new Miejsca();
Hashtable hs = new Hashtable();

foreach (var lst in ms.PobierzMiejscaLista(hs))
{
//listMiejsc.Add(lst);
dt.Rows.Add(lst.Id, lst.Nazwa);
}

gvSource.UseAccessibleHeader = true;
gvSource.DataSource = dt;

gvSource.DataBind();

dt.Rows.Clear();
dt.Rows.Add();
gvDest.DataSource = new List<String>();
gvDest.DataBind();
recID = 0;
}

}
}

我不知道为什么只有一个 GridView (gvSource) 显示数据。第二个 GridView (gvDest) 不显示数据。当我调试代码时,我看到两个数据表都有数据。两个 GridView 数据源也都有数据。但只有一个 GridView 显示数据。

我使用 Nhibernate 来延迟加载 (w.Miejsca) 集合并从数据库中获取诸如“Miejsce”或“Wycieczka”之类的对象。我还使用 JQuery 和 JQuery UI 制作可排序的 GridView。

抱歉我的英语不好,这不是我的母语。我希望你能帮助我:)

更新

我终于找到了造成这种情况的原因。由于我的愚蠢,我浪费了很多时间:)

这行代码从 GridView 中删除了项目:

$("[id*=gvDest] tr:not(tr:first-child)").remove();

谢谢你的建议。问题解决了。

最佳答案

请从第二个 GridView 中删除 ClientIDMode="Static"并检查它。

关于c# - asp.net 多个 gridviews - 不显示数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28516752/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com