当前位置: 首页 > 编程语言 > C#

在asp.net中隐藏GridView行分享

时间:2023-04-10 19:20:43 C#

在asp.net中隐藏gridView行没有记录,我添加了一个虚拟行,因为FooterTemplate仅在有数据时显示。我怎样才能隐藏这个虚拟行?我试过在RowDataBound上设置e.row.visible=false但该行仍然可见。请尝试以下方法protectedvoidGridView1_DataBound(objectsender,EventArgse){GridView1.Rows[0].Visible=false;您可以处理gridview的数据绑定事件并隐藏虚拟行。(不要忘记在aspx代码中分配事件属性):protectedvoidGridView1_DataBound(objectsender,EventArgse){if(GridView1.Rows.Count==1)GridView1.Rows[0].Visible=false;我认为这是你需要的:itemtext插入控件和代码隐藏:protectedvoidOnRowDataBound(objectsender,GridViewRowEventArgse){if(e.Row.RowType==DataControlRowType.DataRow){e.Row.Attributes["style"]="显示:无";但我不明白为什么要将“插入控件”添加到页脚而不是将它们放在网格下方。也许试试:e.Row.Height=Unit.Pixel(0);这不是正确的答案,但在您得到正确答案之前,它可能是双向的。也许使用CSS设置不显示?!这是GridView控件的错误用法。GridView控件有一个特殊的InsertRow,这是您的控件应该去的地方。GridView有一个特殊的属性来访问页脚行,称为“FooterRow”然后,你冷试试yourGrid.FooterRow.Visible=false;我在以前的工作中这样做过,但由于您可以添加行,所以我总是在页脚行中看到它。为了使网格显示,我将一个空行绑定为通常绑定的暗行类型为Datarow=table.NewRow()table.AddRow(row)gridView.DataSource=tablegridView.Databind()然后它具有所有列,然后你需要。你可以通过拉动这个来访问页脚:'无论网格中有多少行,这都会得到页脚。DimfooterasControl=gridView.Controls(0).Controls(gridView.Controls(0).Controls.Count-1)然后要访问页脚中的任何控件,您可以这样做:DimcntlasControl=footer.FindControl()我假设您可以执行以下操作:footer.Visible=false使页脚行不可见。我希望这有帮助!编辑我只知道你说的。我基本上是在添加新行时删除该行,但为此您需要检查是否还有其他行,如果有,请检查它们中是否有值。删除虚拟行:如果mTab??le.Rows.Count=1AndAlsomTab??le.Rows(0)()IsDBNull.ValueAndAlsomTab??le.Rows(0)()IsDBNull.ValueAndAlsomTab??le.Rows(0)()IsDBNull.ValueThenmTab??le.Rows.Remove(mTable.Rows(0))EndIfmTab??le.Rows.Add(row)gridView.Datasource=mTab??legridView.Databind()为什么不用EmptyDataTemplate?它似乎工作得很好,即使我只使用了几天......你应该在GridView中使用DataKeyNames:然后在你的代码中检索它:GridView1.DataKeys[0].Value.ToString()其中“0”是你想获得“FooID”的行号要使其可见,只需使用:Gridview.Rows.Item(i).Attributes.Add("style","display:block")并使其不可见Gridview.Rows。Item(i).Attributes.Add("style","display:none")如果您不想在列/行为空时显示数据:if(!String.IsNullOrEmpty(item.DataName)){e.Row.Visible=false;}可以通过SQL轻松完成USEYourdatabaseNameselect*fromTableNamewhereColumn_Name''本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: