Понимание ObjectDataSource и избранных параметров

'#' заберет пользователя к верхней части страницы, таким образом, я обычно иду с void(0).

javascript:; также ведет себя как javascript:void(0);

5
задан balexandre 6 August 2009 в 10:23
поделиться

2 ответа

, чтобы заставить это работать, я добавляю, чтобы создать два метода (один для GridView, а другой для ObjectDataSource), а также изменить параметр Select с ControlParameter на обычный параметр.

идея состоит в том, чтобы устанавливать Параметр каждый раз при создании строки ...

protected void gvSearch_RowDataBound(object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
        DropDownList d = (DropDownList)e.Row.FindControl("ddlFields");
        string type = ((HiddenField)e.Row.FindControl("hfFieldType")).Value;

        _type = type;
        d.DataBind();
    }
}
protected void odsOperator_Selecting(object sender, ObjectDataSourceSelectingEventArgs e)
{
    e.InputParameters["Type"] = _type;
}

private string _type = "";

, а ObjectDataSource будет

<asp:ObjectDataSource ID="odsOperator" runat="server" TypeName="OperatorFieldsDAO"
   SelectMethod="FindByType" onselecting="odsOperator_Selecting">
   <SelectParameters>
      <asp:Parameter Type="String" Name="Type" />
   </SelectParameters>
</asp:ObjectDataSource>

Я надеюсь, что это поможет кому-нибудь ...

4
ответ дан 14 December 2019 в 19:20
поделиться

Поскольку у вас есть:

<asp:HiddenField ID="hfFieldType" runat="server" .../>

В пределах TemplateField вашего представления может не быть ни одного, одного или нескольких экземпляров этого поля на странице. Поэтому hfFieldType не будет уникальным идентификатором, на самом деле фактический идентификатор будет определен во время выполнения.

Таким образом, ваш параметр управления не может найти его, поскольку он ищет его значение в свойстве элемента управления с именем hfFieldType где-то на странице.

Я не работал с ObjectDataSource несколько лет, но подозреваю, что вы можете подключиться к событию Выбор .

1
ответ дан 14 December 2019 в 19:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: