私は次のようなjs関数を持っています:
<script type="text/javascript">
function Cols() {
rows = document.getElementById("GridView1").rows;
for (i = 0; i < rows.length; i++) {
rows[i].cells[8].style.visibility = "visible";
rows[i].cells[9].style.visibility = "visible";
rows[i].cells[10].style.visibility = "visible";
rows[i].cells[11].style.visibility = "visible";
rows[i].cells[12].style.visibility = "visible";
rows[i].cells[13].style.visibility = "visible";
rows[i].cells[14].style.visibility = "visible";
}
}
</script>
そして、OnClientClick イベントを含むこのボタン:
<asp:Button ID="Add_Button" runat="server" OnClick="Add_Button_Click" Text="Add New Record" OnClientClick="Cols()" />
私の関数のセルは、GridView のフッター行を表示するサーバー側の OnClick イベントに移動する前に、クライアント側で表示したい Gridview 列を参照し、フッター行は新しい行を挿入するために使用されます。
編集:これが私の元の問題です:ボタンをクリックすると、他の列が表示され、同じクリックイベントでフッター行が表示されます。ただし、イベントが発生した後、余分な列が表示されますが、ボタンをもう一度クリックするまでフッター行は表示されません。
ここに私のクリックイベントがあります:
protected void Add_Button_Click(object sender, EventArgs e)
{
if (GridView1.FooterRow.Visible == false)
{
GridView1.FooterRow.Visible = true;
Add_Button.Text = "Cancel";
Panel2.Visible = false;
}
else
{
GridView1.FooterRow.Visible = false;
Add_Button.Text = "Add New Record";
GridView1.Columns[10].Visible = false;
GridView1.Columns[11].Visible = false;
GridView1.Columns[12].Visible = false;
GridView1.Columns[13].Visible = false;
GridView1.Columns[14].Visible = false;
GridView1.Columns[15].Visible = false;
GridView1.Columns[16].Visible = false;
}
}
ただし、ボタンをクリックすると、OnClick イベントが発生しますが、OnClientClick は発生しません。なぜこうなった?