孟子E章的留言板

孟子E章 2020-01-02 06:47:39
大家好,这里是我的留言板,如果有问题,欢迎大家留言,我会第一时间进行回复
...全文
86 2 打赏 收藏 举报
写回复
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
ljwklt 2020-02-28
您好,我试用了下您listview的代码,想试试选择功能,但是会报错。
<%@ Page Language="C#" AutoEventWireup="true" EnableViewState="false" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
int id = -1;
protected void Page_Load(object sender, EventArgs e)
{
Int32.TryParse(xx.Value, out id);
Bind();
}
protected void Bind()
{
ListView1.SelectedIndex = id;
System.Data.DataTable dataTable1 = new System.Data.DataTable("BlogUser");
System.Data.DataRow dr;
dataTable1.Columns.Add(new System.Data.DataColumn("UserId", typeof(System.Int32)));
dataTable1.Columns.Add(new System.Data.DataColumn("UserName", typeof(System.String)));
dataTable1.PrimaryKey = new System.Data.DataColumn[] { dataTable1.Columns["UserId"] };
for (int i = 0; i < 8; i++)
{
dr = dataTable1.NewRow();
dr[0] = i;
dr[1] = "用户姓名【孟子E章】测试" + i.ToString();
dataTable1.Rows.Add(dr);
}
ListView1.DataSource = dataTable1.DefaultView;
ListView1.DataBind();

}
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
</head>
<body>
<form id="form1" runat="server">
<asp:HiddenField ID="xx" runat="server" Value="-1" />
<asp:ListView ID="ListView1" runat="server">
<ItemTemplate>
<div onclick="document.getElementById('<%=xx.ClientID %>').value='<%#Container.DataItemIndex %>';document.getElementById('<%=form1.ClientID %>').submit();">
<%#Eval("UserName")%></div>
</ItemTemplate>
<SelectedItemTemplate>
<div style="background: red">
<%#Eval("UserName")%></div>
</SelectedItemTemplate>
</asp:ListView>
</form>
</body>
</html>


报错提示:

必须在 ListView“ListView1”上指定项占位符。可通过将控件的 ID 的属性设置为“itemPlaceholder”来指定项占位符。项占位符控件还必须指定 runat="server"。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.InvalidOperationException: 必须在 ListView“ListView1”上指定项占位符。可通过将控件的 ID 的属性设置为“itemPlaceholder”来指定项占位符。项占位符控件还必须指定 runat="server"。

源错误:

行 26: }
行 27: ListView1.DataSource = dataTable1.DefaultView;
行 28: ListView1.DataBind();
行 29:
行 30: }

堆栈跟踪:

[InvalidOperationException: 必须在 ListView“ListView1”上指定项占位符。可通过将控件的 ID 的属性设置为“itemPlaceholder”来指定项占位符。项占位符控件还必须指定 runat="server"。]
System.Web.UI.WebControls.ListView.GetPreparedContainerInfo(Control outerContainer, Boolean isItem, Int32& placeholderIndex) +251
System.Web.UI.WebControls.ListView.CreateItemsWithoutGroups(ListViewPagedDataSource dataSource, Boolean dataBinding, InsertItemPosition insertPosition, ArrayList keyArray) +68
System.Web.UI.WebControls.ListView.CreateChildControls(IEnumerable dataSource, Boolean dataBinding) +777
System.Web.UI.WebControls.ListView.PerformDataBinding(IEnumerable data) +33
System.Web.UI.WebControls.DataBoundControl.OnDataSourceViewSelectCallback(IEnumerable data) +114
System.Web.UI.DataSourceView.Select(DataSourceSelectArguments arguments, DataSourceViewSelectCallback callback) +27
System.Web.UI.WebControls.DataBoundControl.PerformSelect() +143
System.Web.UI.WebControls.ListView.PerformSelect() +59
System.Web.UI.WebControls.BaseDataBoundControl.DataBind() +71
ASP.default_aspx.Bind() in c:\Users\L\Desktop\ExtremeASPNET\Default.aspx:28
ASP.default_aspx.Page_Load(Object sender, EventArgs e) in c:\Users\L\Desktop\ExtremeASPNET\Default.aspx:10
System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +14
System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +43
System.Web.UI.Control.OnLoad(EventArgs e) +91
System.Web.UI.Control.LoadRecursive() +74
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +2594

不知道是不是缺少什么?我尝试在listview和Bind()里加了ItemPlaceholderID=itemPlaceholder,还是一样报错。
  • 打赏
  • 举报
回复
ljwklt 2020-02-28
加了
    <LayoutTemplate>
<asp:PlaceHolder runat="server" ID="itemPlaceholder" />
</LayoutTemplate>
解决了,不过遇到新的问题,不管使用 OnSelectedIndexChanged 还是OnSelectedIndexChanging,都不会产生行为?看文档,似乎还要同时点击选择按钮,才能产生作用?有没有只点击当前选项不用添加选择按钮就能产生行为的办法?
  • 打赏
  • 举报
回复
发帖
community_281

465

社区成员

提出问题
其他 技术论坛(原bbs)
社区管理员
  • community_281
加入社区
帖子事件
创建了帖子
2020-01-02 06:47
社区公告
暂无公告