【发布时间】:2020-09-19 10:00:32
【问题描述】:
我是 Asp.net 的初学者。我有这个由 MSSQL 数据库填充的列表视图控件。现在我想在选择列表视图行时更改列表视图索引。 下面是listview的编码
<asp:ListView ID="ListViewTask" runat="server" OnSelectedIndexChanged="ListViewTask_SelectedIndexChanged" OnSelectedIndexChanging="ListViewTask_SelectedIndexChanging">
<ItemTemplate>
<div class="row">
<div class="col-md-1">
<asp:CheckBox ID="ChkTaskDone" runat="server" Checked='<%#Eval("is_task_done")%>' CommandName="Select" OnCheckedChanged="ChkTaskDone_OnCheckedChanged" AutoPostBack="True" />
</div>
<div class="col-md-7">
<asp:Label ID="llbTaskId" runat="server" Text='<%#Eval("task_id")%>' Visible="false"></asp:Label>
<asp:LinkButton ID="lnkbtnTaskName" Style="width: auto" runat="server" Text='<%#Eval("task_name")%>' CommandName="Select"></asp:LinkButton>
</div>
<div class="col-md-2">
<asp:Label class="badge badge-pill badge-dark float-right" ID="llbProjectName" runat="server" Text='<%#Eval("project_name")%>'></asp:Label>
</div>
<div class="col-md-2">
<asp:LinkButton Class="float-right" ID="lnkbtnDueDate" runat="server" Text='<%#Eval("due_date","{0:d MMM}")%>' align="left"></asp:LinkButton>
</div>
</div>
<hr />
</ItemTemplate>
</asp:ListView>
我可以通过简单地在 asp:Button 上添加选择命令来更改列表视图索引,但我想在行上执行它
在我查看帖子并在谷歌搜索示例时放弃了,但没有一个适合我的情况 你能帮我确定我哪里出了问题以及应该做些什么来实现目标。
非常感谢任何帮助。
谢谢
更新:
Albert D. Kallal 的回答对我很有效。这是我在 C# 语言 page_load 事件中的代码
protected void Page_Load(object sender, EventArgs e)
{
if (Request["__EVENTTARGET"] == "RowJump")
{
string ix = Request["__EVENTARGUMENT"];
ListViewItem item = ListViewTask.Items[Convert.ToInt32(ix)];
Label getTaskId = (Label)item.FindControl("llbTaskId");
//then use
string TaskId = getTaskId.Text; // you get the value or the text of the Label
// Do something with TaskId
}
}
在我的情况下,我检索 Row 的 selectedIndex,然后在 html 中获取 TaskId lable 的值,即“可见 = false”,然后从该任务 Id 执行一些 Sql 操作
【问题讨论】: