我想要实现的目标:
我希望用户能够在listview中插入一行。但不要进入数据库。
我被困在:
目前我被困在OnItemCommand上,我似乎没有进入该方法。任何帮助都将是下面的代码。
<LayoutTemplate>
<table>
<th>
</th>
<th class="grayHeader">
<asp:Label ID="lblHeader" runat="server" />
</th>
<tr>
<asp:PlaceHolder runat="server" ID="itemPlaceholder"></asp:PlaceHolder>
</tr>
</table>
</LayoutTemplate>
<ItemTemplate>
<tr>
<td>
<asp:Button runat="server" ID="btnDeletePerson" Text="-" CommandName="deletePerson"/>
</td>
<td>
<asp:Label ID="lblPerson" runat="server" Text='<% #Eval("Person") %>'></asp:Label>
</td>
</tr>
</ItemTemplate>
<InsertItemTemplate>
<tr>
<td>
<asp:Button ID="btnAddUser" runat="server" CommandName="Insert" ext="+" />
</td>
<td>
<asp:TextBox runat="server" ID="txtInsert"></asp:TextBox>
</td>
</tr>
</InsertItemTemplate>
Protected Sub ListGrantee_OnItemCommand(ByVal sender As Object, ByVal e As ListViewCommandEventArgs)
Select Case e.CommandName
Case "Insert"
Dim test As ListViewItem
test = New ListViewItem("test")
listGrantee.Items.Add(test)
Case ""
Case Else
End Select
End Sub
答案 0 :(得分:0)
我会保存你暂时创建的ListView数据源中标记为临时的用户(添加一个新的DataColumn)。之后你必须DataBind Listview。将标志存储在不可见的控件(标签)中,以便将其保存在Postbacks上的ViewState中。
答案 1 :(得分:0)
继续我的评论 - 我理解你的问题,你的OnItemCommand事件处理程序没有被触发。以下是我设置事件处理程序的方法(使用VS2008)。
在aspx文件的设计视图中,我突出显示我感兴趣的控件。然后,在“属性”窗口中,我单击事件的按钮(小闪电),然后向下滚动列表事件,直到我找到我感兴趣的那个。
双击事件名称旁边的列 - 这将显示页面后面的代码,其中包含事件处理程序的shell - 包括所有重要的“handle ....”子句。
现在输入您的事件处理代码....
答案 2 :(得分:0)
我关闭了viewstate。其中禁用了事件机制,翻转了视图状态,重新解决了问题。