我有以下代码在datalist中的sever文件夹上显示图像。 在cs:
if (!IsPostBack)
{
DirectoryInfo dir = new DirectoryInfo(MapPath("~/ajax _main/testpages/images/"));
FileInfo[] files = dir.GetFiles();
ArrayList list = new ArrayList();
foreach (FileInfo oItem in files)
{
if (oItem.Extension == ".jpg" || oItem.Extension == ".jpeg" || oItem.Extension == ".gif")
list.Add(oItem);
}
DataList1.DataSource = list;
DataList1.DataBind();
}
并在aspx中:
<asp:DataList ID="DataList1" runat="server" RepeatColumns="10" CellPadding="5">
<ItemTemplate>
<asp:Image Width="20" Height="20" ID="Image1" ImageUrl='<%# Bind("Name", "~/ajax _main/testpages/images/{0}") %>' runat="server" />
<br />
<asp:HyperLink ID="HyperLink1" Text='<%# Bind("Name") %>' NavigateUrl='<%# Bind("Name", "~/ajax _main/testpages/images/{0}") %>' runat="server"/>
</ItemTemplate>
<ItemStyle BorderColor="silver" BorderStyle="dotted" BorderWidth="3px" HorizontalAlign="Center"
VerticalAlign="Bottom" />
</asp:DataList>
我想在两个文件中动态提供url。我不能在aspx中做到这一点。
答案 0 :(得分:0)
您可以将更新面板与在修改文本框值时调用的JS函数一起使用。首先在代码背后,管理AJAX回发并修改绑定方法如下:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
Bind("");
}
else
{
Bind(tb.Text);
}
SetFocus(tb);
}
private void Bind(string searchPattern)
{
if (searchPattern == "")
searchPattern = "*";
DirectoryInfo dir = new DirectoryInfo(MapPath("~/ajax _main/testpages/images/"));
FileInfo[] files = dir.GetFiles("*" + searchPattern + "*.*");
ArrayList list = new ArrayList();
foreach (FileInfo oItem in files)
{
if (oItem.Extension == ".jpg" || oItem.Extension == ".jpeg" || oItem.Extension == ".gif")
list.Add(oItem);
}
DataList1.DataSource = list;
DataList1.DataBind();
}
在 .aspx 文件中,创建tbUp
JS功能,将内容包装在更新面板中,添加包含OnKeyUp
和{{1}的文本框客户端事件处理程序:
OnFocus