2

現在、テキスト値(A、I、E、C)を含む「PROCESS_FLAG」という名前のデータベースフィールドがあり、PROCESS_FLAGとIの値に応じてドロップダウンリスト列のデフォルトの選択値を変更できるようにしたいと考えています。ここからどこへ行くのかわからない。

これが私が持っているGridViewのコードです:

 <asp:BoundField DataField="REQUESTQTY" HeaderText="Request Quantity" 
                SortExpression="REQUESTQTY" />
            <asp:BoundField DataField="MOVEFROM" HeaderText="Move From" 
                SortExpression="MOVEFROM" />
            <asp:BoundField DataField="MOVETO" HeaderText="Move To" 
                SortExpression="MOVETO" />
            <asp:BoundField DataField="COMPLETEDBY" HeaderText="Completed By" 
                SortExpression="COMPLETEDBY" Visible="false"/>
            <asp:BoundField DataField="COMPLETION_DATE" HeaderText="Completion Date" 
                SortExpression="COMPLETION_DATE" />
            <asp:BoundField DataField="COMMENTS" HeaderText="Comments" 
                SortExpression="COMMENTS" Visible="false" />
            <asp:BoundField DataField="RESPONSETIME" HeaderText="Response Time" 
                SortExpression="RESPONSETIME" Visible="false" />
            <asp:BoundField DataField="PROCESS_FLAG" HeaderText="Process Flag"
                SortExpression="PROCESS_FLAG" />
            <asp:BoundField DataField="UNIQUEKEY" HeaderText="Unique Key"
                SortExpression="UNIQUEKEY" Visible="true" />

            <asp:TemplateField HeaderText="Send To...">
                <ItemTemplate>
                    <asp:DropDownList ID="StatusDD" runat="server" AutoPostBack="false" OnSelectedIndexChanged="StatusDD_SelectedIndexChanged">
                        <asp:ListItem Value="A">Active</asp:ListItem>
                        <asp:ListItem Value="C">Complete</asp:ListItem>
                        <asp:ListItem Value="I">In Process</asp:ListItem>
                        <asp:ListItem Value="E">Error</asp:ListItem>
                    </asp:DropDownList>
                </ItemTemplate>
            </asp:TemplateField>

PROCESS_FLAGの値に応じて、ドロップダウンリストのデフォルトの選択値を設定したいと思います。

これに関する助けをいただければ幸いです。私はEval関数のプロではありません。

ありがとう!

4

1 に答える 1

1

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

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

次に、交換します

<asp:BoundField DataField="PROCESS_FLAG" HeaderText="Process Flag"
            SortExpression="PROCESS_FLAG" />

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

次に、コードビハインドで次のようにします。

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

        }          
    }

これでもう少し先に進むはずです:)

于 2012-06-18T16:39:05.583 に答える