DataList未在编辑模式下获取值

时间:2013-10-11 04:42:05

标签: c# asp.net .net vb.net visual-studio-2008

我有以下datalist:

  <asp:DataList ID="dlAgents" runat="server" RepeatDirection="Horizontal" RepeatColumns="2" OnEditCommand="dlAgents_EditCommand" 
                                    Width="98%">

                                    <EditItemTemplate>
                                        <div class="creamebox">
                                            <table width="95%" border="0" align="center" cellpadding="3" cellspacing="2" style="padding-top: 10px">
                                                <tr>
                                                    <td width="32%" class="dottedline">
                                                        <strong class="NormalTextBig">
                                                            <asp:Label ID="lblName" runat="server" CssClass="NormalTextBig" ></asp:Label>
                                                        </strong>
                                                    </td>
                                                    <td width="68%" align="right" class="NormalTextBig dottedline">
                                                        <span class="FontColor1">No. of Clients:</span> 
                                                        <asp:LinkButton ID="lnkNoOfClients" runat="server" Text="3" CssClass="NormalTextBig FontColor6"></asp:LinkButton>
                                                    </td>
                                                </tr>
                                                <tr>
                                                    <td height="2">
                                                    </td>
                                                    <td>
                                                    </td>
                                                </tr>
                                                <tr>
                                                    <td align="left" valign="top" class="NormalText">
                                                        <strong>Address:</strong>
                                                    </td>
                                                    <td align="left" valign="top" class="NormalText">
                                                        <asp:TextBox ID="txtAddress" runat="server" ></asp:TextBox>
                                                    </td>
                                                </tr>
                                                <tr>
                                                    <td align="left" valign="top" class="NormalText">
                                                        <strong>Contact:</strong>
                                                    </td>
                                                    <td align="left" valign="top" class="NormalText">
                                                        <asp:TextBox ID="txtContact" runat="server"></asp:TextBox>
                                                    </td>
                                                </tr>
                                                <tr>
                                                    <td align="left" valign="top" class="NormalText">
                                                        <strong>LoginId:</strong>
                                                    </td>
                                                    <td align="left" valign="top" class="NormalText">
                                                       <asp:LinkButton ID="lnkLoginID" runat="server"  CssClass="NormalTextBig FontColor6"  ></asp:LinkButton>

                                                    </td>
                                                </tr>
                                                <tr>
                                                    <td align="left" valign="top" class="NormalText">
                                                        <a href="#" class="SmallerLink FontColor1">Reset Password </a>
                                                    </td>
                                                    <td align="right" valign="top" class="NormalText">

                                                        <asp:LinkButton  ID="ibEdit" runat="server"  alt="Edit" width="16" height="16" border="0" CommandArgument='<%#Eval("AgentId") %>' CommandName="CEdit"   ><img id="Img1" src="images/edit.png" runat="server" alt="" /></asp:LinkButton>
                                                        <asp:LinkButton  ID="ibDelete" runat="server" ImageUrl="images/delete.png" alt="Delete"  width="14" height="15" border="0"  CommandArgument='<%#Eval("AgentId") %>' CommandName="CDelete"  />        
                                                    </td>
                               </tr>
                                            </table>
                                        </div>
                                    </EditItemTemplate>

                                    <ItemTemplate>
                                       <div class="creamebox">
                                            <table width="95%" border="0" align="center" cellpadding="3" cellspacing="2" style="padding-top: 10px">
                                                <tr>
                                                    <td width="32%" class="dottedline">
                                                        <strong class="NormalTextBig">
                                                            <asp:Label ID="lblName" runat="server" CssClass="NormalTextBig" ></asp:Label>
                                                        </strong>
                                                    </td>
                                                    <td width="68%" align="right" class="NormalTextBig dottedline">
                                                        <span class="FontColor1">No. of Clients:</span> 
                                                        <asp:LinkButton ID="lnkNoOfClients" runat="server" Text="3" CssClass="NormalTextBig FontColor6"></asp:LinkButton>
                                                    </td>
                                                </tr>
                                                <tr>
                                                    <td height="2">
                                                    </td>
                                                    <td>
                                                    </td>
                                                </tr>
                                                <tr>
                                                    <td align="left" valign="top" class="NormalText">
                                                        <strong>Address:</strong>
                                                    </td>
                                                    <td align="left" valign="top" class="NormalText">
                                                       <asp:Label ID="lblAddress" runat="server" CssClass="NormalTextBig" ></asp:Label>
                                                    </td>
                                                </tr>
                                                <tr>
                                                    <td align="left" valign="top" class="NormalText">
                                                        <strong>Contact:</strong>
                                                    </td>
                                                    <td align="left" valign="top" class="NormalText">
                                                        <asp:Label ID="lblContactNo" runat="server" CssClass="NormalTextBig" ></asp:Label>
                                                    </td>
                                                </tr>
                                                <tr>
                                                    <td align="left" valign="top" class="NormalText">
                                                        <strong>LoginId:</strong>
                                                    </td>
                                                    <td align="left" valign="top" class="NormalText">
                                                       <asp:LinkButton ID="lnkLoginID" runat="server"  CssClass="NormalTextBig FontColor6"  ></asp:LinkButton>

                                                    </td>
                                                </tr>
                                                <tr>
                                                    <td align="left" valign="top" class="NormalText">
                                                        <a href="#" class="SmallerLink FontColor1">Reset Password </a>
                                                    </td>
                                                    <td align="right" valign="top" class="NormalText">

                                                        <asp:LinkButton  ID="ibEdit" runat="server"  alt="Edit" width="16" height="16" border="0" CommandArgument='<%#Eval("AgentId") %>' CommandName="Edit"   ><img src="images/edit.png" runat="server" alt="" /></asp:LinkButton>
                                                        <asp:LinkButton  ID="ibDelete" runat="server" ImageUrl="images/delete.png" alt="Delete"  width="14" height="15" border="0"  CommandArgument='<%#Eval("AgentId") %>' CommandName="CDelete"  />        
                                                    </td>
                               </tr>
                                            </table>
                                        </div>
                                    </ItemTemplate>
                                </asp:DataList>

它没有在编辑模式下的文本框中取值。

我有以下代码:

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        If Not IsPostBack Then
            bindList()
        End If
    End Sub
    Private Sub bindList()
        gc.BindGridView(dlAgents, "select * from AgentMaster")
    End Sub

    Protected Sub dlAgents_EditCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataListCommandEventArgs) Handles dlAgents.EditCommand
        dlAgents.EditItemIndex = e.Item.ItemIndex
        bindList()
    End Sub



Protected Sub dlAgents_ItemCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataListCommandEventArgs) Handles dlAgents.ItemCommand
    If e.CommandName = "Edit" Then
        dlAgents.EditItemIndex = e.Item.ItemIndex
        bindList()
    End If
    If e.CommandName = "CEdit" Then
        gc.ExecuteCommand("update AgentMaster set Address='" & CType(e.Item.FindControl("txtAddress"), TextBox).Text & "' , ContactNo='" & CType(e.Item.FindControl("txtContact"), TextBox).Text & "' where agentid='" & e.CommandArgument & "'")
    End If
End Sub


Protected Sub dlAgents_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataListItemEventArgs) Handles dlAgents.ItemDataBound

    If e.Item.ItemType = ListItemType.AlternatingItem Or e.Item.ItemType = ListItemType.Item Then
        CType(e.Item.FindControl("lblName"), Label).Text = e.Item.DataItem("AgentName")
        CType(e.Item.FindControl("lblAddress"), Label).Text = e.Item.DataItem("Address")
        CType(e.Item.FindControl("lblContactNo"), Label).Text = e.Item.DataItem("ContactNo")
        CType(e.Item.FindControl("lnkLoginID"), LinkButton).Text = e.Item.DataItem("LoginEmailID")
    End If
End Sub

在ItemCommand中,它显示了文本框的空白值,尽管我输入了它们。

CType(e.Item.FindControl("txtAddress"), TextBox).Text这在ItemCommand上显示空白,这就是为什么我无法更新列表。

请帮帮我。

c#中的答案也可以帮助我。

1 个答案:

答案 0 :(得分:1)

您是否忘记将事件附加到网格?

ItemDataBound =“Agents ItemDataBound”

            <asp:DataList ID="dlAgents" runat="server" RepeatDirection="Horizontal" RepeatColumns="2" 
            OnEditCommand="dlAgents_EditCommand" 
            OnItemDataBound="dlAgents_ItemDataBound"
                                Width="98%">
                                Width="98%">
相关问题