c# - 数据列表项命令功能不起作用
问题描述
我尝试使用 itemcommand 函数创建一个数据列表,尽管由于某种原因,该程序似乎没有进入 itemcommand 的函数。
aspx
<asp:DataList ID="DataList1" runat="server" OnItemCommand="DataList1_ItemCommand" DataKeyField="jobID">
<ItemTemplate>
<div class="jobContainer">
<div class="jobDetails">
<span class="jobName"><%# Eval("jobName") %></span><br />
<hr class="style13">
<a class="Details"> <b>Requirments: </b><span ><%# Eval("jobRequirments") %> WPM</span> </a>
<a class="Details"> <b>Salary: </b><span ><%# Eval("jobSalary")%> Shekel per hour</span> </a>
<a class="Details"> <b>City: </b><span ><%# Eval("jobCity")%></span>
<asp:Button ID="Button1" runat="server" CommandName="Details" Text="Show Details" />
</div>
</div>
</ItemTemplate>
</asp:DataList>
代码背后:
protected void Page_Load(object sender, EventArgs e)
{
// getjobs returns a dataset
Service.Service a = new Service.Service();
DataList1.DataSource = a.getjobs();
DataList1.DataBind();
}
protected void DataList1_ItemCommand(object source, DataListCommandEventArgs e)
{
if (e.CommandName == "Details")
{
Response.Redirect("Home.aspx");
}
}
解决方案
我怀疑您遇到了问题Page.IsPostBack
,因此请确保在 Page 不在时绑定 DataList PostBack
,Page_Load
如下所示:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
//Bind your DataList
Service.Service a = new Service.Service();
DataList1.DataSource = a.getjobs();
DataList1.DataBind();
}
}
查看更多信息Page.IsPostBack
推荐阅读
- docker - 拒绝 Docker 容器访问 NFS 共享的权限 - Docker Compose
- google-cloud-platform - Google Dataproc 集群属性
- android - 无论参数如何,findViewById() 返回相同的对象
- python - 如何在 Python 中的 for 循环中创建不同的变量
- string - 在perl的括号中分割一行
- java - Spring WebFlux 处理程序拦截器适配器
- python - 在两个 Ndarray 之间执行广播二进制操作的 Pythonic 方式
- apache - htacces url 重写不起作用,请帮助解决
- reactjs - 我如何验证开始日期是否晚于 Yup 的结束日期?
- java - 如何在 rest doc 中记录链接