にクライアントスクリプトを使用すると、ここでの背後にあるコードである:ここではGridViewのSelectedIndexChangedイベント
protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
{
DetailsView1.Visible = true;
string csName = "showDetails";
StringBuilder sb = new StringBuilder();
sb.Append("document.getElementById('div_detailsView').style.display = 'block';");
sb.Append("document.getElementById('overlay').style.display = 'block';");
if (!ClientScript.IsClientScriptBlockRegistered(csName))
{
ClientScript.RegisterClientScriptBlock(this.GetType(), csName, sb.ToString(), true);
}
Response.Write(GridView1.SelectedIndex + "<br>");
}
は私のaspxページの構造は、私の意図はちょっとどこ影響ライトボックス/ Grayboxを作成することです
<%@ Page Title="" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true" CodeFile="Summary.aspx.cs" Inherits="Summary" %>
<asp:Content ID="Content1" ContentPlaceHolderID="HeadContent" Runat="Server"></asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" Runat="Server">
<div>
<!-- Grid View Control placed here -->
</div>
<div id="div_detailsView">
<!-- Details View Control placed here -->
</div>
<div id="overlay"></div>
</asp:Content>
ですバックグラウンドがグレー表示されている間、DetailsViewコントロールを画面の中央ボックスに配置します。私はここでCSSのアプローチを試しているとjsコードを使用して非常に最小限に抑える必要があります。
何らかの理由で、私はdocument.getElementByID("div_detailsView") is null
エラーが発生し続ける。私はなぜこの場合にクライアントスクリプトを実行できないのか分かりません。誰も私に手を差し伸べることができますか?ありがとう。
クライアントコードは、div_detailsViewがレンダリングされる前に実行されます。 – adatapost
htmlの準備ができたらクライアントスクリプトを実行できますか? – woodykiddy
だと思います。 window.onload – adatapost