She*_*ezi 5 c# asp.net parameters textbox objectdatasource
我已经配置了a GridView来填充数据ObjectDataSource.这只ObjectDataSource需要一个绑定到a的参数DropDownList.这一切都运作良好.
当我加载页面时,它会填充DropDownList并且显示的任何字段都将DropDownList作为参数传递给ObjectDataSource进一步填充的页面GridView.
现在,我想要增强功能,并且有一个TextBox和Button旁边这个DropDownList.我想给我的用户选择一个值,或者选择一个值DropDownList,或者输入TextBox和输入更新GridView.
知道怎么做吗?
我尝试了一下dataSource.Selecting活动.但它没有像我想要的那样工作.请帮忙
这是一个粗略的示例,但基本上您可以做的是创建会话参数或类似的参数,而不是创建控制参数:
因此,当您单击输入时,它将使用文本框值,或者当您更改下拉列表时,它将使用下拉列表的值。
您还可以使用单选按钮,让用户可以选择指定他想要的值。
<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>
Run Code Online (Sandbox Code Playgroud)
背后代码:
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();
}
Run Code Online (Sandbox Code Playgroud)
事后编辑
您还可以不将参数分配给会话字段,而是直接设置对象数据源的参数(禁止异常处理)。
protected void ddl_SelectedIndexChanged(object sender, EventArgs e)
{
var ddl = (DropDownList)sender;
ObjectDataSource1.SelectParameters.Add(new Parameter() {Name="Name",DefaultValue=ddl.SelectedValue });
}
Run Code Online (Sandbox Code Playgroud)