情况: 更新面板内的复选框 不同updatepanel中的多行文本框。 如果用户选中该复选框,则多行文本框会获得一个名称...这样可以正常工作。
HTML:
<asp:UpdatePanel ID="upTraveling" runat="server"
UpdateMode="Conditional" ChildrenAsTriggers="False">
<ContentTemplate>
<asp:CheckBox ID="cbRUTraveler" runat="server" Text="I am a Traveler" AutoPostBack="True"
oncheckedchanged="cbRUTraveler_CheckedChanged1" />
</ContentTemplate>
</asp:UpdatePanel>
<td>
<asp:UpdatePanel ID="upTravelers" runat="server" ondatabinding="cbRUTraveler_CheckedChanged1"
UpdateMode="Conditional">
<ContentTemplate>
<asp:TextBox ID="tbTravelers"
Class="textwidth" runat="server" TextMode="MultiLine"
placeholder="FName LName, FName LName" required="required">
</asp:TextBox>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger
ControlID="cbRUTraveler" EventName="CheckedChanged" />
</Triggers>
</asp:UpdatePanel>
C#:
protected void cbRUTraveler_CheckedChanged1(object sender, EventArgs e)
{
tbTravelers.Text =
RequesterBPL.RequesterTraveling(cbRUTraveler.Checked, tbTravelers.Text);
going = cbRUTraveler.Checked;
}
我在同一页面上还有2个其他更新面板...一个updatepanel中的下拉列表和另一个updatepanel中的标签。当用户在下拉列表中选择一个值时...它会假设在标签中触发名称放置。
HTML:
<td>
<asp:UpdatePanel ID="upManager" runat="server"
ondatabinding="ddlTeam_SelectedIndexChanged"
UpdateMode="Conditional">
<Triggers>
<asp:AsyncPostBackTrigger ControlID="ddlTeam"
EventName="SelectedIndexChanged" />
</Triggers>
<ContentTemplate>
<asp:Label ID="lblManager" runat="server" > </asp:Label>
</ContentTemplate>
</asp:UpdatePanel>
</td>
C#:
protected void ddlTeam_SelectedIndexChanged(object sender, EventArgs e)
{
//upManager.Update();
lblManager.Text =
ManagerBPL.ReturnManagerName(ddlTeam.SelectedIndex);
}
但是,当用户在下拉列表中进行选择时,没有任何反应。 直到用户选中与标签和下拉列表无关的复选框。一旦用户检查(或取消选中)复选框...标签将填充下拉列表中的选项。
所有控件都在结构表中。我有脚本管理员。
从我在网上看到的这可能是一个错误...如果没有错误,任何人都会看到我可能出错的地方......?
由于
答案 0 :(得分:1)
老实说,你可以在客户端做到这一切。一个简单的例子:
$(function () {
$('#<%= drpContent.ClientID %>').blur(function () {
var content = $('#<%= drpContent.ClientID %> option:selected').val();
$('#lblContent').text(content);
}
});
我提供了声明value
的初始示例。第二个例子是text
表示。
$(function () {
$('#<%= drpContent.ClientID %>').blur(function () {
var content = $('#<%= drpContent.ClientID %> option:selected').text();
$('#lblContent').text(content);
}
});
Fiddle的示例。虽然这个例子很简单,但与处理更新面板相比要容易得多。这种特殊的控制可能是一场噩梦,可能会非常痛苦。虽然您询问了服务器问题,但此选项更可行且更常见。
更新面板(缺点):
希望这有帮助。