在我的应用程序中,我使用下拉菜单进行树选择。而且我使用了一个只读的文本框。如果用户从该下拉菜单中选择一棵树,则该特定树的相应日期应显示在该文本框中。例如。在数据库中
tree_no Date of Spathe opening
125 26/05/2010
144 08/03/1999
105 18/05/2010
如果用户使用下拉菜单选择树 105,则立即日期 18/05/2010 应显示在该文本框中
我编写了一个正确获取数据的代码。我面临的问题是在显示数据时。只有当用户在该文本框中单击时,数据才会显示在文本框中(那是因为我已经为它使用了 onclick 事件)请帮助我修改代码,以便数据显示在文本框中,并且它应该保留在该文本框中,直到并且除非用户从 aspx 页面中的下拉菜单代码中选择另一棵树
<div class="list_text_left">
Tree :</div>
<div class="list_text_right">
<asp:DropDownList ID="ddTreeNo" CssClass="title_dropdown" runat="server" OnSelectedIndexChanged="ddTreeNo_SelectedIndexChanged" />
</div>
<div class="list_text_left_new1">
Date Of Spathe Opening:</div>
<div class="list_text_left_new" style="width: 86px; font-weight: normal;">
<asp:TextBox ID="dtActv" runat="server" CssClass="textbox1" onfocus="Change(this, event)"
onblur="Change(this, event)" onkeypress="return keydown(this.id,event);" ValidationGroup="MKE" />
<input type="hidden" id="dte" runat="server" />
<asp:HiddenField runat="server" ID="hBlockID" />
</div>
代码后面的页面
dtActv.Attributes.Add("readonly", "readonly");
protected void ddTreeNo_SelectedIndexChanged(object sender, EventArgs e) {
check(ddpBlock.SelectedValue, ddTreeNo.SelectedValue);
Response.Write("Selected value");
}
public void check(string blocknum, string tree) {
string tre = ddTreeNo.SelectedValue;
string lstd = "", dtemas = "";
string str = " select talltree_master.dt_spatheopen ";
str = str + " from talltree_master ";
str = str + " where talltree_master.block_id =" + blocknum + " and talltree_master.dtdied is NULL and talltree_master.talltree_id =" + tree + "";
OdbcCommand cmd = new OdbcCommand(str, cn);
try {
cn.Open();
OdbcDataReader dr = cmd.ExecuteReader();
while (dr.Read()) {
if (dr.IsDBNull(0)) {
t1 = "";
} else {
tt = dr.GetDate(0);
lstd = tt.ToShortDateString();
}
}
} catch (Exception ex) {
Response.Write(ex);
} finally {
cn.Close();
}
dtActv.Attributes["onclick"] = "clearTextBox(this.id)";
string block_id = lstd;
hBlockID.Value = block_id.ToString();
}
aspx 页面中 onclick 事件的 javascript 代码
function clearTextBox(dtActv) {
var hBlockID = document.getElementById('<%= hBlockID.ClientID %>').value;
document.getElementById(dtActv).value = hBlockID;
}
请修改我的代码。