2013-10-11 19 views
0

我有以下數據列表: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

你忘了將事件附加到網格嗎?

OnItemDataBound = 「dlAgents_ItemDataBound」

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