急救 DropDownList 的数据判断问题

xqsay 2009-01-08 04:21:23
首先,我在我的程序前台页面中的 DropDownList 空间是用
<asp:DropDownList ID="hp_grouInfo_gj_name" runat="server" RepeatLayout="Flow" RepeatColumns="5"
Width="100%" AutoPostBack="True" DataSourceID="SqlDataSource1" DataTextField="gj_name" DataValueField="gj_name">
</asp:DropDownList>
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:Jcjg_JMConnectionString %>"
SelectCommand="SELECT [gj_name] FROM [gj_name]"></asp:SqlDataSource>

这个方法绑定数据的,但我想在后台写个方法 可以控制 这个控件里的数据由 subject决定

注:{subject是数据库中 gj_name表中的一个 subject字段 , gj_name表中有3个字段 , 一个name_id 一个gj_name 一个subject }

而我现在上面页面上的代码 是直接绑定gj_name表中的 gj_name字段 所以我的DropDownList 显示的时候就是所有的名称 所以我想用 gj_name中 subject 字段做判断的显示数据

我的方法 :protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
if (Request["subject"] != null && Request["subject"].ToUpper() == "HP_GROU")
{
hp_grouInfo_gj_name.SelectedIndex = 0;
}
else
{
hp_grouInfo_gj_name.SelectedIndex = 1;
}
}

我是菜鸟 如果说的不清楚很抱歉,希望高手能帮我解决 呵~

...全文
182 32 打赏 收藏 转发到动态 举报
写回复
用AI写文章
32 条回复
切换为时间正序
请发表友善的回复…
发表回复
ls3697264 2009-01-09
  • 打赏
  • 举报
回复
接分
xqsay 2009-01-09
  • 打赏
  • 举报
回复
29楼 我也这样想 所以在写 呵呵```
niitnanfeng 2009-01-09
  • 打赏
  • 举报
回复
你到底想干什么?看了你那么多居然 没看明白,真晕
nsl204 2009-01-09
  • 打赏
  • 举报
回复
我建议你别直接在控件上绑定,在后台写代码吧,这样会比较好控制条件!
xqsay 2009-01-09
  • 打赏
  • 举报
回复
跟20L一样 汗```
xqsay 2009-01-09
  • 打赏
  • 举报
回复
24L 我程序的低成原来有你的那种方法 晕``
xqsay 2009-01-09
  • 打赏
  • 举报
回复
19L 我在看你的代码 呵呵 谢谢了 看看行不``
流年岁月 2009-01-09
  • 打赏
  • 举报
回复
呵呵 虚心学习吧
流年岁月 2009-01-09
  • 打赏
  • 举报
回复
还有 将 查询出来的表 this.DropDownList.datasource= table1;
xqsay 2009-01-09
  • 打赏
  • 举报
回复
22L 我跟你一样 呵呵```学习吧 ```
流年岁月 2009-01-09
  • 打赏
  • 举报
回复
看了楼上这么多,我还是没搞清楚你的意图。
通常我一般就是这样来做的 :
先一条Sql语句 查出表 gj_name 中的所有数据
然后 this.DropDownList.dataValueField=name_id ;
this.DropDownList.datatextField=gj_name ;
this.DropDownList.dataBind();
不过这样每次刷新页面也会同样绑定出数据库中所有的数据。
哎 还是没懂你的意思,我也太菜了,领教了!
xqsay 2009-01-09
  • 打赏
  • 举报
回复
20L 谢谢了 应为我是初学者呢 但我老大就逼我做出来 呵呵
wangping_li 2009-01-09
  • 打赏
  • 举报
回复
你定义变量名称都看不懂,这样很不好
你后台只需给前台的subject传值啊:

String suject=String.Empty;//保存你查询条件的变量
this.SqlDataSource1.SelectParameters["subject"].DefaultValue =suject;//这个就是给subject传值
this.SqlDataSource1.DataBind();
DropDownList1.DataBind();
Fibona 2009-01-09
  • 打赏
  • 举报
回复
你想在后台控制不会SqlDataSource那就用代码进行绑定呀


try
{
string connStr = System.Configuration.ConfigurationManager.ConnectionStrings["connnane"];
System.Data.SqlClient.SqlConnection conn = new System.Data.SqlClient.SqlConnection(connStr);
//System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand("select [name_id],[gj_name] from [gj_name] where subject='" + Request["subjectid"].ToString + "'", conn);
System.Data.SqlClient.SqlDataAdapter da = new System.Data.SqlClient.SqlDataAdapter("select [name_id],[gj_name] from [gj_name] where subject='" + Request["subjectid"].ToString + "'", conn);

System.Data.DataSet ds = null;

da.Fill(ds);

this.DropDownList1.DataSource = ds.Tables[0];
this.DropDownList1.DataTextField = "gj_name";
this.DropDownList1.DataValueField = "name_id";
this.DropDownList1.DataBind();

}
catch (Exception ex)
{

}
xqsay 2009-01-09
  • 打赏
  • 举报
回复
17L 我在试你的方法 那我后台要写什么吗 这页面是这样的

我后台是这样的using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using HHHSoftware.Jcjg_JM.BLL;
using System.Collections;
using HHHSoftware.Jcjg_JM.Common;
using HHHSoftware.Jcjg_JM.Model;

public partial class UserControls_wtd_HP_Grou :UcBase
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
if (hp_grouInfo_gj_name.Text == "")
{
// ControlHelper.BindDropDownListWithInfo<gj_nameInfo>("subject='hp_grou'", hp_grouInfo_gj_name, "gj_name", "gj_name", new List<HHH.Base.DBParameter>());
}
else
{

}

//hp_grouInfo_gj_name.Items.Add();
}

}
}
wangping_li 2009-01-09
  • 打赏
  • 举报
回复
13L那DefaultValue是自己填默认值,空也行
<asp:Parameter DefaultValue="默认值" Name="subject" Type="你subject字段的数据类型" />
wangping_li 2009-01-09
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 xqsay 的回复:]
8楼大哥 但是你这样绑定的话 我每次刷新页面 他保存的数据都不对啊```我要求保存我 需要的 但保存下来的数据却始终为下拉框中的第一个数据 ````[/Quote]
因为你新加入的所以肯定是第一位了,根据你想要的值排序或者直接指定DropDownList的SelectIndex也行的
xxyping 2009-01-09
  • 打赏
  • 举报
回复
所以我想用 gj_name中 subject 字段做判断的显示数据

这个你取出来的不只一个吧,subject 和gj_name要联系在一起的
xqsay 2009-01-09
  • 打赏
  • 举报
回复
8楼和11楼的 大哥 你们那方法 具体是用哪啊```汗 我太菜了 但是我必须学啊。5555~~
wangping_li 2009-01-09
  • 打赏
  • 举报
回复

<asp:DropDownList ID="hp_grouInfo_gj_name" runat="server" RepeatLayout="Flow" RepeatColumns="5"
Width="100%" AutoPostBack="True" DataSourceID="SqlDataSource1" DataTextField="gj_name" DataValueField="gj_name">
</asp:DropDownList>
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString=" <%$ ConnectionStrings:Jcjg_JMConnectionString %>"
SelectCommand="SELECT [gj_name] FROM [gj_name] WHERE ([subject] = @subject)">
<SelectParameters>
<asp:Parameter DefaultValue="自己填认值" Name="subject" Type="你subject字段的数据类型" />
</SelectParameters>
</asp:SqlDataSource>

后台你声明一个string类型的subject变量用来记录查询条件的

String suject=String.Empty;
this.SqlDataSource1.SelectParameters["subject"].DefaultValue =suject;//这个就是给参数的赋值语句
this.SqlDataSource1.DataBind();
再绑定你的DropDownList
加载更多回复(12)

111,130

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧