0

以下のコードを参照してください。

Protected Sub GVHistoricNames_RowUpdating(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewUpdateEventArgs) Handles GVHistoricNames.RowUpdating
            Try
                'Dim strUsercode As String = GVHistoricNames.Rows(e.RowIndex).Cells(2).Text
                Dim ddl As DropDownList = CType(GVHistoricNames.Rows(e.RowIndex).FindControl("ddlUsercode"), DropDownList)
                MsgBox(ddl.SelectedIndex)


            Catch ex As Exception
                 'I don't swallow exceptions
            Finally

            End Try
        End Sub

ドロップダウン リストで選択した値を取得しようとしています。テンプレート フィールドは次のように定義されます。

<asp:TemplateField HeaderText="Usercode">
                 <ItemTemplate>
                <asp:DropDownList ID="ddlUsercode" runat="server" SelectedValue ='<%# Bind("Usercode") %>' DataTextField="Usercode" DataValueField="Usercode">
                </asp:DropDownList> 
                </ItemTemplate>
            </asp:TemplateField>

MsgBox(ddl.SelectedIndex) は常に空の文字列を GVHistoricNames_RowUpdatinGVHistoricNames_RowUpdating に出力します。私は何をしているのですか?

4

1 に答える 1

0

rowUpdating イベントの前に、ページ ライフ サイクルのどこかでドロップダウン リストをバインドまたは設定していないことを確認します。not isPostback適切に使用するようにしてください。私は C# 派なので、ここで構文を確認してください。

于 2012-11-26T22:48:02.300 に答える