这就是我想要的网格视图。
我的SQL表Pharmacy_Data包含Item_Name和Item_Code
从Pharmacy_Data表中填充Item_Code。当我从下拉列表中选择项目名称时,它应填写字段中的项目代码。
我该如何解决这个问题?
答案 0 :(得分:0)
1.为项目名称下拉列表设置Autopostback为true,并在下拉列表更改事件中填写获取数据(项目代码)的代码并填写项目代码
答案 1 :(得分:0)
请参阅以下Link ..这可能会对您有所帮助。在链接的示例中,他们使用直接值来使用列表填充下拉列表,而不是根据您的情况使用数据库。
答案 2 :(得分:0)
我通过向GridView添加OnRowDataBound函数解决了这个问题。
<强> OnRowDataBound = “Grid_ItemList_RowDataBound”强>
protected void Grid_ItemList_RowDataBound(object sender, GridViewRowEventArgs e)
{
Connection con = new Connection();
if (e.Row.RowType == DataControlRowType.DataRow)
{
//Find the DropDownList in the Row
DropDownList ddlnames = (e.Row.FindControl("ddlnames") as DropDownList);
ddlnames.DataSource = con.GetData("Select Item_Code,Item_Name from mytable");
//TextValue Pairs of DropDown list
ddlnames.DataTextField = "Item_Name";
ddlnames.DataValueField = "Item_Code";
ddlnames.DataBind();
//Add Default Item in the DropDownList
ddlnames.Items.Insert(0, new ListItem("Please select"));
}
}
上面的代码提取了ItemNames及其各自的ItemCodes。
现在,要在选择的文本框中显示代码,我使用下面的事件作为下拉元素
<强> OnSelectedIndexChanged = “ddlnames_OnChanged”强>
protected void ddlnames_OnChanged(object sender, EventArgs e)
{
//Encapsulates the object back as a dropdown list
DropDownList ddlnames = (DropDownList)sender;
//Finds the control in the corresponding gridview row and edits the label
GridViewRow row = (GridViewRow)ddlnames.NamingContainer;
TextBox IC = (TextBox)row.FindControl("itemCode");
IC.Text = ddlnames.SelectedValue;
}
嗯,这就是我必须要做的! :) 希望有一天有人觉得这很有用。