我正在使用带有c#的asp.net。我有两个图像按钮:打开和删除。
默认情况下,它们被禁用,即imgOpen.Enabled = false; imgDelete.Enabled = false;
。
我有一个GridView,显示表中的搜索结果。 GridView包含一个单选按钮,选中后,应启用“打开和删除图像”按钮。
如果我不使用ajax更新面板,那么每当我选择一个单选按钮时,我的页面会重新加载,这非常令人不安而且不友好。
<asp:TemplateField>
<ItemTemplate>
<asp:UpdatePanel ID="updateRadioButton" runat="server">
<ContentTemplate>
<asp:RadioButton ID="rdoBtnFileOption" runat="server" OnCheckedChanged="rdoBtnFileOption_CheckedChanged" AutoPostBack="true" />
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="rdoBtnFileOption" EventName="CheckedChanged" />
</Triggers>
</asp:UpdatePanel>
</ItemTemplate>
</asp:TemplateField>
protected void rdoBtnFileOption_CheckedChanged(object sender, EventArgs e)
{
imgOpen.Enabled = true;
imgDelete.Enabled = true;
RadioButton curretnRdo = sender as RadioButton;
GridViewRow currentRow = (GridViewRow)curretnRdo.NamingContainer;
int index = currentRow.RowIndex;
try
{
foreach (GridViewRow grv in grdSearchResults.Rows)
{
if (grv.RowType == DataControlRowType.DataRow && grv.RowIndex != index)
{
RadioButton rdo = new RadioButton();
rdo = (RadioButton)(grv.FindControl("rdoBtnFileOption"));
rdo.Checked = false;
}
}
}
catch (Exception ex)
{
form.MessageBox.Show(ex.Message, "Error", form.MessageBoxButtons.OK, form.MessageBoxIcon.Error);
}
}
这两行不适合我。
imgOpen.Enabled = true;
imgDelete.Enabled = true;
请建议任何方法。 我希望我很清楚。
答案 0 :(得分:1)
尝试以下
将您的imgDelete
换成另一个UpdatePanel
并设置UpdateMode=Conditional
并设置触发
<asp:UpdatePanel ID="updateRadioButton" UpdateMode="Conditional" runat="server">
<ContentTemplate>
<asp:Image ID="imgOpen" runat="server"/>
<asp:Image ID="imgDelete" runat="server"/>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="rdoBtnFileOption"
EventName="CheckedChanged" />
</Triggers>
</asp:UpdatePanel>
或set UpdateMode="Always" and No Triggers
答案 1 :(得分:0)
对于使用AsyncPostBack,内容也应该在Update面板中。
您可以使用另一个Asp:UpdatePanel与 UpdateMode =“始终”将图片放入其中。
<asp:UpdatePanel ID="UP1" runat="server" UpdateMode="Always">
<ContentTemplate>
<asp:ImageButton ID="imgOpen" runat="server" ImageUrl="" Visible="false" AlternateText="this is Open Image" />
<asp:ImageButton ID="imgDelete" runat="server" ImageUrl="" Visible="false" AlternateText="this is Delete Image" />
</ContentTemplate>
</asp:UpdatePanel>
祝你有所帮助。