You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ASP.NET中如何在ListView服务器标签属性中使用后台代码变量

ASP.NET ListView中给HiddenField赋值后台public变量的解决方法

我在ASP.NET Web应用中使用ListView控件,通过SQL查询绑定SQL Server数据,需要将后台代码中声明为public的SearchIn变量赋值给ListView内的HiddenFieldSearch控件的Value属性。尝试用<asp:HiddenField ID="HiddenFieldSearch" runat="server" Value="Eval<%# SearchIn%>" />无效,求解决办法。


方法一:直接使用数据绑定表达式

Eval用于绑定数据源中的字段,而SearchIn是页面级的public成员变量,直接用<%# %>表达式即可完成绑定,无需额外调用Eval。

修改前台的HiddenField代码:

<asp:HiddenField ID="HiddenFieldSearch" runat="server" Value='<%# SearchIn %>' />

注意:确保SearchIn变量在ListViewSearchResults.DataBind()执行前已经被正确赋值,数据绑定表达式会在DataBind()阶段计算取值。


方法二:通过ListView的ItemDataBound事件赋值

如果需要更灵活的控制逻辑(比如根据列表项动态调整值),可以通过ItemDataBound事件找到目标控件并赋值。

1. 修改前台ListView标记

添加OnItemDataBound事件绑定:

<asp:ListView ID="ListViewSearchResults" runat="server" OnItemDataBound="ListViewSearchResults_ItemDataBound">
    <ItemTemplate>
        <!-- 其他控件代码保持不变 -->
        <asp:HiddenField ID="HiddenFieldSearch" runat="server" />
    </ItemTemplate>
</asp:ListView>

2. 后台实现事件方法

protected void ListViewSearchResults_ItemDataBound(object sender, ListViewItemEventArgs e)
{
    // 仅处理数据项,忽略表头/表尾等非数据项
    if (e.Item.ItemType == ListViewItemType.DataItem)
    {
        HiddenField hiddenField = e.Item.FindControl("HiddenFieldSearch") as HiddenField;
        if (hiddenField != null)
        {
            hiddenField.Value = SearchIn;
        }
    }
}

额外提示:修复SQL注入风险

你的SQL语句存在严重的SQL注入漏洞,建议改用参数化查询:

string strsqlLike = "SELECT TbAye.NumberAye, TbAye.IdAye, TbAye.TextAye, TbSoore.NameSoore, TbSoore.IdSoore, TbTarjome.TextTarjome " +
                    "FROM TbAye " +
                    "INNER JOIN TbTarjome ON TbAye.IdAye = TbTarjome.IdAye " +
                    "INNER JOIN TbSoore ON TbAye.IdSoore = TbSoore.IdSoore " +
                    "WHERE FreeText(@SearchIn, @SearchText)";

cmd = new SqlCommand(strsqlLike, con);
cmd.Parameters.AddWithValue("@SearchIn", SearchIn);
cmd.Parameters.AddWithValue("@SearchText", forwardedSearchText);

内容的提问来源于stack exchange,提问作者Zahra

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 14:37:51