我的代码有问题。我需要根据从数据库中提取的值,在ASP.NET GridView中的RowDataBound
事件中启用或禁用 HyperLink 。
如果我的数据库的字段File
的值不是null
,则 HyperLink 是可见的,否则不可见。在GridView中,我没有计划显示字段File
的值。
我尝试使用这些解决方案但没有成功,因为我有这个错误。
编译器错误消息:CS1502:' string.IsNullOrEmpty(string)'的最佳重载方法匹配有一些无效的论点
这是我的代码:
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
HyperLink Srl = (HyperLink)e.Row.FindControl("Srl");
foreach (string color in colorList)
{
if (!string.IsNullOrEmpty(DataBinder.Eval(e.Row.DataItem, "File")))
{
Srl.Visible = true;
}
}
}
}
答案 0 :(得分:0)
DataBinder.Eval
返回一个对象。您需要将其转换为String
。
试试这个:
if (!string.IsNullOrEmpty(Convert.ToString(DataBinder.Eval(e.Row.DataItem, "File"))))
{
Srl.Visible = true;
}
答案 1 :(得分:0)
<asp:GridView ID="gvList" runat="server" Width="100%" AutoGenerateColumns="False" AllowPaging="false">
<Columns>
<asp:TemplateField HeaderText="Select">
<ItemTemplate>
<asp:CheckBox ID="cbSelect" runat="server" />
<asp:HiddenField ID="hfSLNO_BARCODE" runat="server"
Value='<%#Bind("SLNO_BARCODE") %>' />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
使用asp:HiddenField
作为文件值,并在行数据绑定事件中使用它。
答案 2 :(得分:0)
void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
HyperLink Srl = (HyperLink)e.Row.FindControl("Srl");
foreach (string color in colorList)
{
string str = (string)DataBinder.Eval(e.Row.DataItem, "File");
//then you can check
if (!String.IsNullorEmpty(str ))
{
Srl.Visible = true;
}
}
}
}