gpt4 book ai didi

asp.net - 当字段为空时隐藏 GridView 中的按钮

转载 作者:行者123 更新时间:2023-12-04 05:11:21 26 4
gpt4 key购买 nike

我有一个网格 View ,其中一些行附加了图片。当我按下 Button2 时,我从 sql 记录中提取信息,关于服务器上有图片的文件夹。
这已经有效,但我无法让按钮仅在附加了图像文件夹的行中可见。

我在谷歌上搜索了很长时间,发现了类似于以下内容的不同解决方案,但我无法让它工作。
我做错了什么?

<asp:SqlDataSource ID="SqlDSodinRSSfeb" runat="server" 
ConnectionString="<%$ ConnectionStrings:herning_brand_dk_dbConnectionString %>"
SelectCommand="SELECT PubDateTime, Melding, Station, PhotoFolder FROM OdinRSS ">
</asp:SqlDataSource>
<asp:GridView ID="GridView14" runat="server" DataSourceID="SqlDSodinRSSfeb"
AutoGenerateColumns="False" Width="500px" OnRowCommand="Button_RowCommand" >
<Columns>
<asp:BoundField DataField="PubDateTime" HeaderText="Tidspunkt" />
<asp:BoundField DataField="Melding" HeaderText="Melding for udkaldet" />
<asp:BoundField DataField="Station" HeaderText="Station" />
<asp:TemplateField HeaderText="Foto" >
<EditItemTemplate>
<asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("PhotoFolder") %>'></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Button ID="Button2" runat="server" Text="Foto" Visible='<%# Eval("PhotoFolder") != "Null" %>'
CommandName="ButtonClick" CommandArgument='<%# Eval("PhotoFolder") %>' />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>

我的.cs
protected void Button_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandArgument != null)
{
switch (e.CommandName)
{
case "ButtonClick":
{
int Folder = Convert.ToInt32(e.CommandArgument);
PhotoList(Folder);
}
break;
}
}
}

void PhotoList(int FolderNumber)
{
var imagePaths = Directory.GetFiles(Server.MapPath("PhotoFolder\\" + FolderNumber));
var imageNames = new string[imagePaths.Length];

for (int i = 0; i < imagePaths.Length; i++)
{
imageNames[i] = imagePaths[i].Substring(imagePaths[i].LastIndexOf("\\") + 1);
}

var dt = new DataTable();
dt.Columns.Add("ImageName", typeof(string));
dt.Columns.Add("ImagePath", typeof(string));

foreach (var imgName in imageNames)
{
DataRow dr = dt.NewRow();
dr["ImageName"] = RemoveExtension(imgName);
dr["ImagePath"] = "PhotoFolder/" + FolderNumber + "/" + imgName;
dt.Rows.Add(dr);
}
DataList1.DataSource = dt;
DataList1.DataBind();
}

string RemoveExtension(string imgName)
{
return imgName
.Replace(".jpg", "")
.Replace(".png", "");
}

sql 字段“PhotoFolder”是一个 nvarchar(50)。如果有照片记录,该字段有一个 100 及以上的数字,表示包含照片的文件夹。如果记录中没有照片,则该字段包含“Null”

我也试过:
   <asp:Button ID="Button2" runat="server" Text="Foto" Visible='<%# Eval("PhotoFolder").ToString() != "Null" %>'

但是该按钮显示在所有行中,而不仅仅是在“PhotoFolder”中具有字符串(数字)的那些

最佳答案

可以通过内联代码简单实现

<asp:ImageButton ID="ibtnBranchType1" runat="server" ImageUrl='<%# "~/images/" + Eval("branchtype1")+".png" %>' Visible='<%# Convert.ToString(Eval("branchtype1"))=="" ? false : true %>'  Height="20px"/>

这里 Eval("branchtype1") 我们从数据表中获取 id 值,如 1、2、3 等,我们的图像文件夹包含 1.png、2.png、3.png 等图像,
Visible='<%# Convert.ToString(Eval("branchtype1"))=="" ? false : true %>'

如果 value 不包含任何 id,它将为 null。我们将使用三元运算符将其与空字符串进行比较。

关于asp.net - 当字段为空时隐藏 GridView 中的按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14892727/

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