я использовал ModalPopupExtender только сегодня, так что я не так много знаю, как это работаетНе показаны DetailsView в ModalPopupExtender
я застрял в задаче здесь
У меня есть Gridview с указанием всех данных студентов, теперь, когда я нажимаю на Linkbutton конкретного учащегося в Gridview, чем данные студента, должны отображаться в Detailsview по всплывающему окну
Я получаю данные о студентах в деталях, но не отображается в всплывающем окне, должен ли я добавить что-нибудь еще здесь?
вот мой код modelpopupextender
ASPX код-
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
DataKeyNames="Stu_id" onselectedindexchanged="GridView1_SelectedIndexChanged">
<Columns>
<asp:TemplateField HeaderText="ID">
<EditItemTemplate>
<asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("Stu_id") %>'></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Bind("Stu_id") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="Fullname" HeaderText="name" />
<asp:BoundField DataField="Username" HeaderText="Username" />
<asp:BoundField DataField="Email" HeaderText="Email" />
<asp:TemplateField ShowHeader="False">
<ItemTemplate>
<asp:LinkButton ID="btnviewdetails" runat="server" CausesValidation="false"
CommandName="Select" Text="select" CommandArgument='<%# Eval("Stu_id") %>'
onclick="LinkButton1_Click"></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</ContentTemplate>
</asp:UpdatePanel>
<asp:Button ID="btnshowpopup" runat="server"/>
<asp:ModalPopupExtender ID="mdlpopup" runat="server" TargetControlID="btnshowpopup" PopupControlID="pnlpopup" CancelControlID="btncancel" BackgroundCssClass="pop">
</asp:ModalPopupExtender>
<asp:Panel ID="pnlpopup" runat="server" Width="500px" style="display:none">
<asp:UpdatePanel ID="UpdatePanel2" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:DetailsView ID="DetailsView1" runat="server" AutoGenerateRows="False" DataKeyNames="Stu_id" Height="50px" Width="125px">
<Fields>
<asp:BoundField DataField="Stu_id" HeaderText="ID" />
<asp:BoundField DataField="Fullname" HeaderText="Fullname" />
<asp:BoundField DataField="Username" HeaderText="Username" />
<asp:BoundField DataField="Email" HeaderText="Email" />
</Fields>
</asp:DetailsView>
<div id="div1" style="display:none">
<asp:Button ID="btncancel" runat="server" Text="cancel" />
</div>
</ContentTemplate>
</asp:UpdatePanel>
</asp:Panel>
CS code-
public partial class Admin_Default : System.Web.UI.Page
{
portalDal dal = new portalDal();
adminBal bal = new adminBal();
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
GridView1.DataSource = bal.student_bind();
GridView1.DataBind();
}
}
protected void LinkButton1_Click(object sender, EventArgs e)
{
}
protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
{
this.DetailsView1.Visible = true;
LinkButton l1 = (LinkButton)sender;
dal.stu_id = Convert.ToInt16(l1.CommandArgument);
DetailsView1.DataSource = bal.select_student(dal);
DetailsView1.DataBind();
this.UpdatePanel2.Update();
this.mdlpopup.Show();
}
БАЛ Файл-
public DataTable student_bind()
{
con.Open();
cmd = new SqlCommand("select * from Stu_registration", con);
DataTable dt = new DataTable();
SqlDataAdapter da = new SqlDataAdapter(cmd);
da.Fill(dt);
con.Close();
return dt;
}
public DataTable aselect_student(portalDal dal)
{
con.Open();
cmd = new SqlCommand("select_student", con);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@Stu_id", dal.stu_id);
DataTable dt = new DataTable();
SqlDataAdapter da = new SqlDataAdapter(cmd);
da.Fill(dt);
con.Close();
return dt;
}
спасибо за ответ на мой вопрос, но та же проблема, даже всплывающее окно не отображается, когда я нажимаю GridView LinkButton, показывает только при клике on btnshowpopup – vikas
О нет! Извините, @vikas. Вы получаете сообщения об ошибках? Например, ошибки JavaScript? Кроме того, это длинный снимок, но вы должны попытаться определить GridView в первой UpdatePanel как триггер для UpdatePanel, который содержит DetailsView. – jadarnel27
спасибо @jadarnel, но я только что решил его сегодня утром, на самом деле я запускал триггер в updatepanel2 как контрольный идентификатор gridview и написал весь код GridView1_SelectedIndexChanged в LinkButton1_Click, и сделал так, как вы сказали, что переместил modelpopup за панель и добавил некоторые теги, и это сработало, и спасибо снова за предоставление решения – vikas