开发者

ListView programmatically adding row after databind

开发者 https://www.devze.com 2023-01-05 10:30 出处:网络
What I would like to achieve: I would like a user to be able in insert a row into the listview. BUT not into a database.

What I would like to achieve:

I would like a user to be able in insert a row into the listview. BUT not into a database.

What I am stuck on:

Currently I am stuck on the OnItemCommand, i dont seem to be entering the method. Any help would be great Code below.

<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


I would save you temporarily created Users in the ListView's Datasource flagged as temporary(add a new DataColumn). Afterwards you have to DataBind the Listview. Store the flag in an invisible control(label) so that it is saved in the ViewState on Postbacks.


Further to my comment - as I understand your problem, your OnItemCommand event handler is not getting triggered. Here's how I set up event handlers (using VS2008).

In the design view for the aspx file, I highlight the control that I am interested in. Then, in the "Properties" window, I click on the Event's button (the little lightning flash), and scroll down the list of events until I find the one I am interested in.

Double click in the column next to the event name - this will bring up the code behind page, with the shell of the event handler in place - including the all important "handles ...." clause.

Now enter your event handling code....


I had viewstate turned off. Which disabled the event mechanism, flipped view state back on problem solved.

0

精彩评论

暂无评论...
验证码 换一张
取 消