1

ListView内にDropDownListがあります。コマンドがクリックされたときにデータを取得したかったのです。これは私のコードです。

protected void ListView2_ItemCommand(object sender, ListViewCommandEventArgs e){

string shipmethod = ((DropDownList)e.Item.FindControl("ShippingComapnyDDL")).SelectedValue;

}

しかし、それは常にnull値を返します..私は約3時間グーグルして、多くの関数を試しました..それでもこのバグを解決することはできません。

助けてください、

これが私のaspxページの更新です

 <asp:DropDownList ID="ShippingComapnyDDL"  runat="server" SelectedValue='<%# Eval("ShippingCompany") %>'>
<asp:ListItem Text="" Value=""></asp:ListItem>
<asp:ListItem Text="FedEx" Value="FedEx"></asp:ListItem>
<asp:ListItem Text="UPS" Value="UPS"></asp:ListItem>
<asp:ListItem Text="Other" Value="Other"></asp:ListItem>
</asp:DropDownList>
4

4 に答える 4

0

ヘッダーを設定していますか?試してみてください

    if(e.Item.ItemIndex!=-1)
{
     string shipmethod = ((DropDownList)e.Item.FindControl("ShippingComapnyDDL")).SelectedValue; 
}

if not working then try     
string shipmethod = (e.Item.FindControl("ShippingComapnyDDL") as DropDownList).SelectedValue; 
于 2012-04-10T07:26:57.787 に答える
0

これを試して:

  DropDownList ddl = (DropDownList)e.Item.FindControl("ShippingComapnyDDL");
  if (ddl != null)
  {
       //code here
  }
于 2012-04-10T07:29:31.793 に答える
0

してみてください

<%#DataBinder.Eval(Container.DataItem,"ShippingCompany")%>

それ以外の

<%#Eval("ShippingCompany")%>

詳細については:

http://aspadvice.com/blogs/joteke/archive/2008/08/24/Is-_2200_Databinding-methods-such-as-Eval_280029002C00_-XPath_280029002C00_-and-Bind_28002900_-can-only-be-used-in-the- context-of-a-databound-control_2E002200_-causing-you-grief_3F00_.aspx

于 2012-04-10T08:11:23.863 に答える
0
<asp:ListView ID="lvwCoreConfigureData" runat="server" DataKeyNames="Course_Config_Id" OnItemCommand="lvwCore_Config_ItemCommand" OnItemDataBound="lvwCore_Config_ItemDataBound">
            <LayoutTemplate>
                <table class="table mobile-stacked mb-0">
                    <thead>
                        <tr role="row">
        
                            <th style="width: 240px">
                                <asp:Label runat="server" Text="<%$Lang:Resource.Core_Config_Course %>"></asp:Label>
                            </th>
        
                        </tr>
                    </thead>
                    <tbody>
                        <tr runat="server" id="itemPlaceholder" />
                    </tbody>
                </table>
            </LayoutTemplate>
        
            <ItemTemplate>
                <tr role="row">
        
                    <td data-th="Name">
                    <asp:DropDownList ID="ConfigCourseName" runat="server" AutoPostBack="true" CssClass="form-control" OnSelectedIndexChanged="ConfigCourseName_SelectedIndexChanged"></asp:DropDownList>
                    </td>
                    
                </tr>
            </ItemTemplate>
        
        </asp:ListView>
            
                                
                            

2。この方法は、編集モード中にドロップダウンへのデータバインディングを提供します

protected void lvwCore_Config_ItemDataBound(Object sender, ListViewItemEventArgs e)
                        {
                            if (e.Item.ItemType == ListViewItemType.DataItem)
                            {
                                ListViewDataItem dataItem = (ListViewDataItem)e.Item; // load one row item

                                var CourseId = ((Edulearn.Model.CoreProgramme.CoreProgrammeConfigrationDM)dataItem.DataItem).CourseId; //

                                DropDownList ConfigCourseName = (e.Item.FindControl("ConfigCourseName") as DropDownList);
                                ConfigCourseName.DataSource = CoreProgrammeRepository.GetCoreProgrammeCourseList(TimeZoneId, new { Name = "TEST" }); // Get the data to dropdown (all data)
                                ConfigCourseName.DataTextField = "Name"; // assign here which one need to display
                                ConfigCourseName.DataValueField = "CourseId"; // assign here which one is the value for database save 
                                ConfigCourseName.DataBind(); // bind the data
                                ConfigCourseName.SelectedValue = CourseId.ToString(); // Here selected values from database will be added 
                                ConfigCourseName.Items.Insert(0, new ListItem("Please select")); // Default value only for display

                            }
                        }
于 2022-02-22T09:29:13.620 に答える