首先,原谅我的英语,我的尝试,我创建一个自动完成用户控件,替换掉落,我创建了用户控件,并且它的工作正常。为了简单起见,我需要在我的用户控件中提供一个公共属性来获取选定的ID,类似于DropDrown控件的SelectedValue。我坚持这一点,任何想法将不胜感激。一个自动完成用户控件的SelectedValue属性
嗨我的代码
UserControl.ascx
<%@控制语言= “C#” AutoEventWireup = “真” 的代码 文件=“UserControl.ascx。 cs“ Inherits =”UserControl“%> <%@ Register Assembly =”AjaxControlToolkit“Namespace =”AjaxControlToolkit“ 的TagPrefix = “CC1” %>
功能DispValue(发件人,E){ 警报(e.get_value()+ “:用户控制”); document.getElementById(hiddenFieldName.Client ID).value = e.get_value();
}UserControl.ascx.cs
公共部分类用户控件:System.Web.UI.UserControl {
保护无效的Page_Load(对象发件人,EventArgs的) { ACEName。 ContextKey =“1”; }public String SelectedValue { get { return this.hdnValue.Value; } } public String SelectedText { get { return this.Name.Text; } } }
MyAspxPage.aspx
<%@注册SRC = “〜/ UserControl.ascx” 的TagPrefix = “PUC” 标签名= “用户控件” %>
患者姓名MyAspxPage.cs数据表DT;如果(!IsPostBack) { dt = new DataTable();如果(!IsPostBack) dt = new DataTable(); dt.Columns.Add(“col1”); dt.Columns.Add(“col2”); dt.Columns.Add(“col3”); dt.Columns.Add(“col4”); dt.Columns.Add(“col5”); dt.Columns。添加( “COL6”);
if (Session["dt"] == null) { dt = AddRow(dt); gvPatient.DataSource = dt; gvPatient.DataBind(); Session["dt"] = dt; //ViewState["dt"] = dt; } else dt = (DataTable)Session["dt"];//ViewState["dt"]; } } private DataTable AddRow(DataTable dt) { for (int i = 0; i < 5; i++) { DataRow dr = dt.NewRow(); dr[0] = ""; dr[1] = ""; dr[2] = ""; dr[3] = ""; dr[4] = ""; dr[5] = ""; dt.Rows.Add(dr); } return dt; }
保护无效GridPatient_DataBound(对象发件人,EventArgs的) { 的foreach(在gvPatient.Rows GridViewRow项) { 用户控件ptuc = (用户控件)item.FindControl( “pucPatient1”); string id = ptuc.SelectedValue; } }
公共无效保存(对象发件人,EventArgs的) { 的foreach(在gvPatient.Rows GridViewRow项) { 如果(item.RowType == DataControlRowType.DataRow) { 用户控件ptuc = (UserControl)item.FindControl(“pucPatient1”); string id = ptuc.SelectedValue; //获得空值。 string patientName = ptuc.SelectedText; } }}
这是所有我所做的。
感谢你,欢呼Sharanamma。
我有一个问题更值I,E,如果我在用户控件事件暴露OnClientItemSelected在autoCompleteextender作为一个属性意味着我没有得到的SelectedValue的设置属性,因为以前我设置在UserControl的autocompleteextender的onClientItemSelect事件中隐藏的字段值,并在SelectedValue属性中显示此值,那么如何设置此属性?任何解决方案手段将不胜感激 –