gpt4 book ai didi

c# - GridView 和 RowDataBound 事件

转载 作者:行者123 更新时间:2023-11-29 12:51:28 27 4
gpt4 key购买 nike

我可以在 GridView 中编辑单行。

但是,当在 MySQL 数据库中,字段 "card" 的值不为空时,我需要停止 GridView 的这一行中的编辑(并将该行传递到关闭的州)。

我尝试了这个解决方案,但在 GridView 中,即使字段“card”的值为 null,我的 GridView 的所有行都处于“关闭状态”,为什么?

条件插入到RowDataBound事件中,正确吗?

下面是我的代码。

我非常感谢您在解决这个问题时为我提供的任何帮助。

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
var obj = ((DataRowView)e.Row.DataItem)["card"];
ImageButton edit = (ImageButton)e.Row.FindControl("imgbtnEdit");

if (obj != null)
{
edit.Enabled = false;
edit.ToolTip = "Closed state";
}
}


if (e.Row.RowType == DataControlRowType.Pager)
{
DropDownList ddl = (DropDownList)(e.Row.FindControl("ddlpages"));
Label lblPageCount = (Label)e.Row.FindControl("lblPageCount");

if (lblPageCount != null)
lblPageCount.Text = GridView1.PageCount.ToString();

for (int i = 1; i <= GridView1.PageCount; i++)
{
ddl.Items.Add(i.ToString());
}

ddl.SelectedIndex = GridView1.PageIndex;

if (GridView1.PageIndex == 0)
{
((ImageButton)e.Row.FindControl("ImageButton1")).Visible = false;
((ImageButton)e.Row.FindControl("ImageButton2")).Visible = false;
}

if (GridView1.PageIndex + 1 == GridView1.PageCount)
{
((ImageButton)e.Row.FindControl("ImageButton3")).Visible = false;
((ImageButton)e.Row.FindControl("ImageButton4")).Visible = false;
}
}
}

最佳答案

这是因为 DBNull.Valuenull 是两个不同的东西。

var obj = ((DataRowView)e.Row.DataItem)["card"];
if (!DBNull.Value.Equals(obj))
{
edit.Enabled = false;
edit.ToolTip = "Closed state";
}

这将检查“card”值是否为空数据库值,而不是空对象。

关于c# - GridView 和 RowDataBound 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24653706/

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