我有一个div,根据某些条件显示或隐藏div。在这种Div
我有一些代码,如下设置RadioButtonList的选定值不能按预期工作
<div id="addPopUp" runat="server" style="padding: 30px; height: auto; width: 450px;
overflow: hidden; display: none; background-color: White; border: 1px solid black;">
<table width="500px;">
<tr>
<td valign="top" align="left" style="width: 27%;">
<input type="hidden" runat="server" id="hfLevel" />
<input type="hidden" runat="server" id="hfLevel1Id" />
<input type="hidden" runat="server" id="hfLevel2Id" />
<input type="hidden" runat="server" id="hfLevel3Id" />
</td>
<td style="width: 80%;">
</td>
</tr>
<tr>
<td style="width: 20%;" align="left" class="topics">
</td>
<td style="width: 80%;">
<asp:RadioButtonList ID="rbtnMode" runat="server" RepeatDirection="Horizontal" CssClass="mylist"
AutoPostBack="true" OnSelectedIndexChanged="rtbnMode_SelectedIndexChanged">
<asp:ListItem Selected="True" Value="Add">Add Link</asp:ListItem>
<asp:ListItem Value="Edit">Edit Link</asp:ListItem>
</asp:RadioButtonList>
</td>
</tr>
<tr>
<td style="width: 20%;" align="left" class="topics">
<strong>Link Name :</strong>
</td>
<td style="width: 80%;">
<asp:TextBox ID="txtLinkName" CssClass="txtbox" runat="server"></asp:TextBox>
</td>
</tr>
<tr>
<td style="width: 20%;" class="topics">
<strong>Url :</strong>
</td>
<td style="width: 80%;">
<asp:TextBox ID="txtUrl" CssClass="txtbox" runat="server"></asp:TextBox>
</td>
</tr>
<tr>
<td style="width: 20%;" class="topics">
<strong>Position :</strong>
</td>
<td style="width: 80%;">
<asp:TextBox ID="txtPosition" CssClass="txtbox" runat="server"></asp:TextBox>
</td>
</tr>
<tr>
<td style="width: 20%;" class="topics">
<strong>Show on same page :</strong>
</td>
<td style="width: 80%;">
<asp:CheckBox ID="chkSamePage" runat="server" Checked="true" />
</td>
</tr>
<tr>
<td>
</td>
<td class="topics" align="left">
<asp:Button ID="btnSave" runat="server" Text="Save" CssClass="sfCustomButton" OnClick="btnSave_Click" />
<asp:Button ID="btnHide" runat="server" Text="Hide Link" CssClass="sfCustomButton"
Visible="false" />
<input type="button" id="btnCancel" value="Cancel" class="sfCustomButton" onclick="hide()" />
</td>
</tr>
</table>
</div>
外面主代码来这里
<asp:RadioButtonList ID="rbtnMode" runat="server" RepeatDirection="Horizontal" CssClass="mylist"
AutoPostBack="true" OnSelectedIndexChanged="rtbnMode_SelectedIndexChanged">
<asp:ListItem Selected="True" Value="Add">Add Link</asp:ListItem>
<asp:ListItem Value="Edit">Edit Link</asp:ListItem>
</asp:RadioButtonList>
下面是一些Javascript
代码:
function showPopUp(Level, Level1Id, Level2Id, Level3Id, id) {
var radAddEdit = document.getElementById('<%=rbtnMode.ClientID %>');
var radio = radAddEdit.getElementsByTagName("input");
for (var i = 0; i < radio.length; i++) {
if (radio[i].value == 'Add') {
radio[i].checked = true;
}
}
document.getElementById("txtLinkName").value = '';
document.getElementById("txtUrl").value = '';
document.getElementById("txtPosition").value = '';
document.getElementById("chkSamePage").checked = true;
document.getElementById("hfLevel").value = Level;
document.getElementById("hfLevel1Id").value = Level1Id;
document.getElementById("hfLevel2Id").value = Level2Id;
document.getElementById("hfLevel3Id").value = Level3Id;
document.getElementById("hfEditableId").value = id;
Popup.showModal('addPopUp', null, null, { 'screenColor': '#cccccc', 'screenOpacity': .6 });
}
function hide() {
Popup.hide('addPopUp');
}
// function BindEvents() {
$(document).ready(function() {
var hf = document.getElementById("hfShow");
if (hf.value == "1") {
Popup.showModal('addPopUp', null, null, { 'screenColor': '#cccccc', 'screenOpacity': .6 });
}
});
功能ShowPopUp
被称为上显示Div
并重置其值的链接。 Hide
从btnCalcel
被调用来隐藏Div。 document.ready()
被称为在某些情况下显示Div。
代码隐藏
protected void rtbnMode_SelectedIndexChanged(Object sender, EventArgs e)
{
if (rbtnMode.SelectedValue == "Edit")
{
CatalystEntities context = new CatalystEntities();
btnHide.Visible = true;
btnSave.Visible = false;
hfShow.Value = "1";
string editValue = hfEditableId.Value;
string levelNumber = editValue.Substring(0, 6);
long id = Convert.ToInt64(editValue.Substring(6));
if (levelNumber.Contains("1"))
{
var linkInfo = context.Navigation_level1.
Where(i => i.LinkID == id)
.Select(i => new
{
i.LinkName,
i.Position,
i.Url
}).FirstOrDefault();
txtLinkName.Text = linkInfo.LinkName;
txtPosition.Text = linkInfo.Position.ToString();
txtUrl.Text = linkInfo.Url;
}
}
else
{
btnSave.Visible = true;
btnHide.Visible = false;
hfShow.Value = "1";
txtLinkName.Text = String.Empty;
txtPosition.Text = String.Empty;
txtUrl.Text = String.Empty;
}
}
问题
当我打开DIV,去Edit
无线电,它工作正常。但是当我点击btnHide
(请记住,当前的选择是编辑单选按钮)并点击其他链接。 ShowPopUp()
被调用,它重置所有的控件,但是当我点击EDIT
Radio
它不回发,我点击ADD Radio
,它现在如果我点击编辑,它会。
意思是,如果弹出窗口被选中的值隐藏起来Edit
当我选择编辑电台时,它不会第一次回发。 请问我是否不清楚。 感谢
这是一大堆需要经历的代码。没有人有太多时间筛选所有这些代码。如果您只能精确定位错误的部分并粘贴它或在像Jsfiddle – MarsOne
这样的测试环境中生成它,那么IT会非常棒,我已经在那里写了** Main Code **,但如果你们中的一些人发现它不完整,我粘贴了所有。 – SMI