asp.net objectdatasource从控件和文本框传递参数

时间:2011-06-02 12:00:37

标签: c# asp.net parameters textbox objectdatasource

我已配置GridViewObjectDataSource填充数据。此ObjectDataSource只需要一个绑定到DropDownList的参数。这一切都运作良好。

当我加载页面时,它会填充DropDownList,此DropDownList中显示的任何字段都会作为参数传递给ObjectDataSource,这会进一步填充GridView

现在,我想要增强功能,并在此TextBox旁边设置ButtonDropDownList。我想让我的用户选择从DropDownList中选择一个值,或者在TextBox中选择一个值,然后输入以更新GridView

知道该怎么做吗?

我尝试了dataSource.Selecting事件。但它没有像我想要的那样工作。 请帮忙

2 个答案:

答案 0 :(得分:2)

这是一个粗略的示例,但基本上你可以做的不是创建一个控制参数,你可以创建一个会话参数或类似的东西:

因此,当您单击“输入”时,它将使用文本框值,或者当您更改下拉列表时,它将使用下拉列表的值。

您还可以使用单选按钮为用户提供指定他想要的值的选项。

<asp:DropDownList ID="ddl" runat="server" AutoPostBack="true" 
        onselectedindexchanged="ddl_SelectedIndexChanged"></asp:DropDownList>
        <asp:TextBox ID="txt" runat="server"></asp:TextBox>

        <asp:Button runat="server" Text="ClickMe" ID="btnOne" OnClick="btnOne_Click"/>

    <asp:ObjectDataSource ID="ObjectDataSource1" runat="server">
        <SelectParameters>
            <asp:SessionParameter SessionField="ObjectParameterName" />
        </SelectParameters>
    </asp:ObjectDataSource>

代码背后:

    protected void ddl_SelectedIndexChanged(object sender, EventArgs e)
    {
        var ddl = (DropDownList)sender;
        Session["ObjectParameterName"] = ddl.SelectedValue;
        ObjectDataSource1.Select();
    }

    protected void btnOne_Click(object sender, EventArgs e)
    {
        var ddl = (DropDownList)sender;
        Session["ObjectParameterName"] = txt.Text;
        ObjectDataSource1.Select();
    }

编辑后

您也可以代替将参数分配给会话字段,只需直接设置objectdatasource的参数(禁止异常处理)。

    protected void ddl_SelectedIndexChanged(object sender, EventArgs e)
    {
        var ddl = (DropDownList)sender;
        ObjectDataSource1.SelectParameters.Add(new Parameter() {Name="Name",DefaultValue=ddl.SelectedValue });
    }

答案 1 :(得分:1)

SelectParameters.Add方法,它将ColumnName和value作为参数传递给参数值。

protected void btn_Click(object sender, EventArgs e)
{
  ods.SelectParameters.Clear();
  ods.SelectParameters.Add("ColumnName", SetparameterValue);
}
相关问题