0

私のGridViewには、次の列があります。

<Columns>  
    <asp:BoundField DataField="report_type" HeaderText="Report Type"   
        SortExpression="report_type" />  

    <asp:BoundField DataField="progress" HeaderText="Progress"   
        SortExpression="progress" />  

    <asp:TemplateField HeaderText="..">
        <ItemTemplate>
            <asp:DropDownList ID="DropDownList1" runat="server" DataValueField="progress">
                <asp:ListItem Value="0">Incomplete</asp:ListItem>
                <asp:ListItem Value="1">Complete</asp:ListItem>
            </asp:DropDownList>
        </ItemTemplate>
    </asp:TemplateField> 
</Columns>

進行状況の列はデモ用にあり、最終的には削除されます。ドロップダウンで正しいアイテムリストを選択するために、進行状況の値を取得するにはどうすればよいですか?

したがって、の値がでprogressある場合、ドロップダウンが選択され1ているはずです。Completeの値がである場合progress、ドロップダウンが選択され0ているはずです。Incomplete

4

2 に答える 2

1

OnRowDataBound属性を.aspxページのグリッドビューに追加します。

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
    DataKeyNames="id" OnRowDataBound="GridViewRowEventHandler">

交換

<asp:BoundField DataField="Progress" HeaderText="Progress"   
    SortExpression="progress" /> 

<asp:TemplateField>
   <ItemTemplate>             
       <asp:Label ID="progress_Flags" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "Progress").ToString()%>'/>
  </ItemTemplate>                    
</asp:TemplateField>

背後にあるコード:

protected void GridViewRowEventHandler(Object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
       Label flag = (Label)e.Row.FindControl("progress_Flags");
       DropDownList myDropDown = (DropDownList)e.Row.FindControl("DropDownList1");
        if (flag.Text == "1")
        {
            myDropDown.SelectedValue = "1";
        }
    //add more conditions here..

    }          
}
于 2012-08-31T14:00:26.650 に答える
0

使用できるRowDataBound場合e.Row.FindControl

protected void GridView_OnRowDataBound(object sender, GridViewRowEventArgs e)
{

   GridViewRow row = e.Row;
   DataRowView dr = row.DataItem as DataRowView;
   // now find the control in the row by control ID
   DropDownList myDropDown = row.FindControl("DropDownList1") as DropDownList;
}
于 2012-08-31T13:51:18.793 に答える