我需要一个DropDown值链接到另一个页面
我有一个DropDown列表,其中我使用代码隐藏从我的数据库中带来的值。我需要一个DropDown值链接到另一个页面
我已经读从源数据,调用后增加了一个新的价值“增加新的技能”。
现在,当用户点击这个项目,我需要一个小页面(或者更确切地说,一个新的页面),打开添加未在DropDownList中提到的技能。
if (!IsPostBack)
{
SqlConnection myConn = new SqlConnection(@"Data Source=USER-PC\SQLEXPRESS;Initial Catalog=KKSTech;Integrated Security=True");
SqlCommand myCmd = new SqlCommand(
"SELECT SkillName, SkillID FROM Skills", myConn);
myConn.Open();
SqlDataReader myReader = myCmd.ExecuteReader();
//Set up the data binding.
DropDownList1.DataSource = myReader;
DropDownList1.DataTextField = "SKillName";
DropDownList1.DataValueField = "SkillID";
DropDownList1.DataBind();
//Close the connection.
myConn.Close();
myReader.Close();
//Add the item at the first position.
DropDownList1.Items.Insert(0, "..Add New Skill");
}
这是我的代码隐藏文件..现在如何链接?
将AutoPostBack
设置为true。这样当用户更改选项时,它会自动将页面发布到服务器。
处理此SelectedIndexChanged事件,并重定向到您的添加页面。
- 把你的用户在添加页面。
- 将详情添加到数据库。
- 将用户带回本页面。
- 列表将从数据库重新加载,直到您获得您的价值。
没有特殊链接是必需的。
添加SelectedIndexChanged
事件处理程序到dropdown
这样
void ddl_SelectedIndexChanged(object sender, EventArgs e)
{
if(ddl.SelectedIndex == 0)
Response.Redirect("Add_New_Skill.aspx");
}
如果你想要的位置“...添加新技能”是在最后的名单
使用此
的ddl.Items.Insert(ddl.Items.Count, "...Add New Skill");
现在要重定向到另一页您应该这样做
void ddl_SelectedIndexChanged(object sender, EventArgs e)
{
if(ddl.SelectedIndex == ddl.Items.Count-1)
Response.Redirect("Add_New_Skill.aspx");
}
你好..我试过这是一个好主意..但问题是价值“..添加新技能”的值为0,所以当我运行它时,它会自动重定向到不同的页面。我怎样才能防止这一点? – Girish 2012-07-27 07:28:04
为什么不把'添加新技能'放到最后?这样,用户也会扫描该列表,以检查它是否在那里? – nunespascal 2012-07-27 07:29:28
是的,这是我的问题..我怎么加它到底? – Girish 2012-07-27 07:30:37
您应该使用SelectedIndexChanged事件和SelectedValue属性:
void ddl_SelectedIndexChanged(object sender, EventArgs e)
{
if(String.Compare(ddl.SelectedValue,"..Add New Skill",true)==0)
Response.Redirect("Add_New_Skill.aspx");
}
谢谢,但它不工作:( – Girish 2012-07-27 07:38:59
尝试使用此代替: 'void ddl_SelectedIndexChanged(object sender,EventArgs e){var value = System.Web.UI.WebControls.DropDownList)sender).Text; if(String.C ompare(value,“.. Add New Skill”,true)== 0) Response.Redirect(“Add_New_Skill.aspx”); '' – Phist 2012-07-27 09:15:18
这是工作
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
bindDropdownlist()
}
}
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
string getvalue = DropDownList1.SelectedItem.Value;
if (getvalue == "..Add New Skill")
{
Response.Redirect("Default.apsx");
}
}
public void bindDropdownlist()
{
SqlDataAdapter dap = new SqlDataAdapter("select coloumn1,colum2 from table", con);
DataSet ds = new DataSet();
dap.Fill(ds);
DropDownList1.DataSource = ds.Tables[0];
DropDownList1.DataTextField = "coloumn1";
DropDownList1.DataValueField = "colum2 ";
DropDownList1.DataBind();
DropDownList1.Items.Insert(0, "..Add New Skill");
}
}
<div>
<asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="True"
onselectedindexchanged="DropDownList1_SelectedIndexChanged">
</asp:DropDownList>
</div>
而且你怎么我绑定到该项目中添加链接? ? 其管理员正在添加一名员工的技能,所以当他看到列表中没有技能时,他选择此项目“添加新的”,然后他添加新的技能.. – Girish 2012-07-27 07:30:56