1

選択した行が編集モードに切り替わったときに、ドロップダウン リスト コントロールに入力したい ASP グリッドビューがあります。

<EditItemTemplate>
      <asp:DropDownList ID="ddlFormatID" runat="server">
      </asp:DropDownList>

私はグーグルで検索しましたが、rowdataboundでこれを行うことを想定しており、行が編集中のものであるかどうかを確認し、編集されている場合はDDLを入力しますが、行が適切に機能するかどうかを確認できません:(

        If DataControlRowState.Edit = e.Row.RowState Then

        Dim ddlFormat As DropDownList = e.Row.FindControl("ddlFormatID")
        ddlFormat.DataSource = XRefBCWorker.GetFormatCombos
        ddlFormat.DataTextField = "Format"
        ddlFormat.DataValueField = "FormatID"
        ddlFormat.DataBind()

    End If

私は何を間違っていますか?

4

3 に答える 3

1

この記事を見つけることができ、rowdatabound イベントのコードを変更したところ、うまくいきました!

        If e.Row.RowType = DataControlRowType.DataRow Then
        If e.Row.DataItem IsNot Nothing Then
            If (e.Row.RowState And DataControlRowState.Edit) > 0 Then
                Dim ddlFormat As DropDownList = e.Row.FindControl("ddlFormatID")
                ddlFormat.DataSource = XRefBCWorker.GetFormatCombos
                ddlFormat.DataTextField = "Format"
                ddlFormat.DataValueField = "FormatID"
                ddlFormat.DataBind()
                ddlFormat.SelectedIndex = CurrentFormatID
            End If
        End If
    End If
于 2013-02-14T18:44:35.650 に答える
0

表示する型に DataItem をキャストできます。

Protected Sub GridView_RowDataBound(sender As Object, e As GridViewRowEventArgs)
    If DataControlRowState.Edit = e.Row.RowState Then
        Dim item = e.Row.DataItem
        Dim dr = DirectCast(item, DataRowView)
        Dim id = Integer.Parse(dr(0).ToString())
    End If
End Sub
于 2013-02-14T18:14:49.333 に答える
0

マークアップに追加するだけです:

<asp:DropDownList SelectedValue='<%# Bind("categoryId") %>'
于 2015-06-30T02:39:44.053 に答える