在不使用按钮的情况下单击网格视图行时,不会显示模式弹出窗口
本文关键字:显示 窗口 模式 视图 按钮 情况下 网格 单击 | 更新日期: 2023-09-27 18:00:35
当点击网格视图行时,我需要显示一个模式弹出窗口(没有任何按钮),我通过点击网格视图来显示弹出窗口,但不知道将值绑定到模式弹出窗口中显示的文本框。。所以我需要的帮助
- 将网格视图行(单击时)值绑定到模式弹出文本框
- 只有当点击编辑按钮(位于模式弹出窗口底部)时,模式弹出文本框才可编辑
- 编辑工作完成后,单击保存按钮(位于编辑按钮旁边的底部)时应保存编辑后的数据
由于我是asp.net的新手,请试着帮我提出你对我的要求的建议。由于下面的代码,我可以显示弹出的点击网格视图行,但建议我如何将值绑定到文本框:
protected void grid_RowDataBound(object sender, GridViewRowEventArgs e)
{
GridViewRow row = e.Row;
if (row.DataItem == null)
{
return;
}
try
{
switch (e.Row.RowType)
{
case DataControlRowType.Header:
break;
case DataControlRowType.DataRow:
e.Row.Attributes.Add("onmouseover", "this.style.cursor='hand'");
e.Row.Attributes.Add("onclick", Page.ClientScript.GetPostBackEventReference(grid, "Select$" + e.Row.RowIndex.ToString()));
e.Row.Attributes.Add("onclick", String.Format("javascript:$find('{0}').show();", ModalPopupExtender2.ClientID));
TextBox1.Text = grid.SelectedRow.Cells[0].Text;
TextBox2.Text = grid.SelectedRow.Cells[1].Text;
TextBox3.Text = grid.SelectedRow.Cells[2].Text;
TextBox4.Text = grid.SelectedRow.Cells[3].Text;
TextBox5.Text = grid.SelectedRow.Cells[4].Text;
ModalPopupExtender2.Show();
break;
}
}
catch
{
return;
}
}
HTML代码:
<asp:Panel ID="editpanel" runat="server">
<table width="850px" border="1" class="color">
<tr>
<td align="center">
<asp:Label ID="Label1" runat="server" Text="Firstname" Width="150px"></asp:Label>
<asp:Label ID="Label2" runat="server" Text="Surname" Width="150px"></asp:Label>
<asp:Label ID="Label3" runat="server" Text="Visits" Width="150px"></asp:Label>
<asp:Label ID="Label4" runat="server" Text="$ Speed" Width="150px"></asp:Label>
<asp:Label ID="Label5" runat="server" Text="Points" Width="150px"></asp:Label>
<asp:ImageButton id="ImageButton1" runat="server" src="close.png" onclick="close_Click" style="float:right; height: 16px;" ToolTip="To close window"/>
</td>
</tr>
<tr>
<td>
<asp:TextBox ID="TextBox1" runat="server" ></asp:TextBox>
<asp:TextBox ID="TextBox2" runat="server" ></asp:TextBox>
<asp:TextBox ID="TextBox3" runat="server" ></asp:TextBox>
<asp:TextBox ID="TextBox4" runat="server" ></asp:TextBox>
<asp:TextBox ID="TextBox5" runat="server"></asp:TextBox>
</td>
</tr>
<tr>
<td>
<asp:ImageButton ID="cancell" runat="server" onclick="cancell_Click"
src="cancel.jpg" style="float:right; width: 16px;"
ToolTip="To cancel member" />
<asp:ImageButton ID="tickk" runat="server" onclick="tickk_Click" src="tick.jpg"
style="float:right; height: 16px;" ToolTip="To save member" />
<asp:ImageButton ID="Edit" runat="server" onclick="edit_Click"
src="edit.jpg" style="float:right; height: 16px; width: 16px;"
ToolTip="To edit member" />
</td>
</tr>
</table>
</asp:Panel>
<asp:ModalPopupExtender ID="ModalPopupExtender2" runat="server" TargetControlID="modal2" PopupControlID="editpanel" BackgroundCssClass="modalBackground"></asp:ModalPopupExtender>
<asp:ImageButton ID="modal2" runat="server" src="addmember.jpg" OnClick="modal2_click" Text="modal2" style="display:none;"/> // have created a dummy image button
由于我是asp.net的新手,请试着帮我提一些建议。
使用BindingSource
将数据与文本框绑定(仅举一个例子):
textBoxid.DataBindings.Add(new Binding("Text", customersBindingSource, "ID"));
textBoxname.DataBindings.Add(new Binding("Text", customersBindingSource, "NAME"));
textBoxcity.DataBindings.Add(new Binding("Text", customersBindingSource, "City"));
要使您的文本框不可编辑,请使用以下内容:
private void EditButton_Click(object sender, EventArgs e)
{
if (textBoxid.ReadOnly == true)
{
textBoxid.ReadOnly = false;
//how many text boxes you have, do the same here
}
else
{
textBoxid.ReadOnly = true;
//how many text boxes you have, do the same here
}
}
要保存您的编辑,只需对所有新数据运行UPDATE
查询即可。