显示确认框然后根据答案编辑文本框字段
Show confirmation box then edit textbox field based on answer
我有一个 asp.net 网络表单页面,其中有一个包含类别的下拉列表。如果用户选择类别 "ER" 或 "DR",将根据所选类别填充描述文本框。但是,我需要通知用户,如果他们切换类别,他们在描述字段中的文本将会丢失。
submit_ticket.aspx
function ShowConfirmation(ddlCategory) {
//Not sure what goes here.
}
<asp:DropDownList ID="ddlCategory" runat="server" CssClass="DropDownList" OnSelectedIndexChanged="ddlCategory_SelectedIndexChanged" AutoPostBack="true" />
Submit_ticket.aspx.cs
protected void ddlCategory_SelectedIndexChanged(object sender, EventArgs e)
{
if (IsPostBack)
{
if ((ddlCategory.SelectedItem.Text == "DR") || ddlCategory.SelectedItem.Text == "ER")
ddlCategory.Attributes.Add("onChange", "return ShowConfirmation(this);");
if (ddlCategory.SelectedItem.Text == "DR")
txtDescription.Text = "DR Template";
else if (ddlCategory.SelectedItem.Text == "ER")
txtDescription.Text = "ER Template";
}
}
总共有 7 个类别,但我只需要在上面列出的两个类别中使用此功能。用于这些类别的 "template" 很长,不能选择用 Javascript.
填充描述文本框
非常感谢任何帮助。
从下拉列表中删除 AutoPostBack 并将您自己的 js 函数添加到 onchange 事件。
<asp:DropDownList ID="DropDownList1" runat="server" onchange="func();">
<asp:ListItem Text="01"></asp:ListItem>
<asp:ListItem Text="02"></asp:ListItem>
<asp:ListItem Text="03"></asp:ListItem>
</asp:DropDownList>
在你的js函数中得到用户的响应。如果 'yes',使用 asp.net 内置的 __doPostBack 函数强制回发。包括控件名称和 'true' 作为参数。
function func() {
if (confirm("change?")) {
// parameters are: '__EVENTTARGET' and '__EVENTARGUMENT'.
__doPostBack("DropDownList1", "true");
}
}
在页面加载时检查 __EVENTARGUMENT。
protected void Page_Load(object sender, EventArgs e)
{
if(Request.Params.Get("__EVENTARGUMENT") == "true")
{
// call a method.
TextChanger();
}
}
protected void TextChanger()
{
if (DropDownList1.SelectedItem.Text == "02")
{
Label2.Text = "changed text";
}
}
我有一个 asp.net 网络表单页面,其中有一个包含类别的下拉列表。如果用户选择类别 "ER" 或 "DR",将根据所选类别填充描述文本框。但是,我需要通知用户,如果他们切换类别,他们在描述字段中的文本将会丢失。
submit_ticket.aspx
function ShowConfirmation(ddlCategory) {
//Not sure what goes here.
}
<asp:DropDownList ID="ddlCategory" runat="server" CssClass="DropDownList" OnSelectedIndexChanged="ddlCategory_SelectedIndexChanged" AutoPostBack="true" />
Submit_ticket.aspx.cs
protected void ddlCategory_SelectedIndexChanged(object sender, EventArgs e)
{
if (IsPostBack)
{
if ((ddlCategory.SelectedItem.Text == "DR") || ddlCategory.SelectedItem.Text == "ER")
ddlCategory.Attributes.Add("onChange", "return ShowConfirmation(this);");
if (ddlCategory.SelectedItem.Text == "DR")
txtDescription.Text = "DR Template";
else if (ddlCategory.SelectedItem.Text == "ER")
txtDescription.Text = "ER Template";
}
}
总共有 7 个类别,但我只需要在上面列出的两个类别中使用此功能。用于这些类别的 "template" 很长,不能选择用 Javascript.
填充描述文本框非常感谢任何帮助。
从下拉列表中删除 AutoPostBack 并将您自己的 js 函数添加到 onchange 事件。
<asp:DropDownList ID="DropDownList1" runat="server" onchange="func();">
<asp:ListItem Text="01"></asp:ListItem>
<asp:ListItem Text="02"></asp:ListItem>
<asp:ListItem Text="03"></asp:ListItem>
</asp:DropDownList>
在你的js函数中得到用户的响应。如果 'yes',使用 asp.net 内置的 __doPostBack 函数强制回发。包括控件名称和 'true' 作为参数。
function func() {
if (confirm("change?")) {
// parameters are: '__EVENTTARGET' and '__EVENTARGUMENT'.
__doPostBack("DropDownList1", "true");
}
}
在页面加载时检查 __EVENTARGUMENT。
protected void Page_Load(object sender, EventArgs e)
{
if(Request.Params.Get("__EVENTARGUMENT") == "true")
{
// call a method.
TextChanger();
}
}
protected void TextChanger()
{
if (DropDownList1.SelectedItem.Text == "02")
{
Label2.Text = "changed text";
}
}