[研究][ASP.NET]GridView中傳送多個參數
2023-02-15
環境:Visual Studio 2022 + ASP.NET + WebForm + Web Application + C#
********************************************************************************
用超連結網址 (HyperLink)傳
Default.aspx
<asp:GridView>
<Columns>
<asp:TemplateField ShowHeader="False">
<asp:TemplateField HeaderText="編輯" InsertVisible="False" ItemStyle-Width="1%">
<EditItemTemplate>
<asp:Label ID="Label5" runat="server" Text='<%# Eval("id") %>'></asp:Label>
</EditItemTemplate>
<ItemTemplate>
<asp:HyperLink ID="HyperLink_Edit" runat="server"
NavigateUrl='<%# String.Format("~/Edit.aspx?Id={0}&Id2={1}", Eval("Id"), Eval("Id2")) %>'
CssClass="glyphicon glyphicon-pencil btn btn-primary btn-xs">編輯</asp:HyperLink>
</ItemTemplate>
<ItemStyle Wrap="False" />
</asp:TemplateField>
</Columns>
</asp:GridView>
|
Edit.aspx.cs 中
protected void Page_Load(object sender, EventArgs e)
{
if (!(String.IsNullOrEmpty(Request.QueryString["Id"])))
{
Int32.TryParse(Request.QueryString["Id"].ToString(), out id);
}
if (!(String.IsNullOrEmpty(Request.QueryString["Id2"])))
{
Int32.TryParse(Request.QueryString["Id2"].ToString(), out id2);
}
}
|
********************************************************************************
用超連結按鈕 (LinkButton) 傳
Default.aspx
<asp:GridView>
<Columns>
<asp:TemplateField ShowHeader="False">
<asp:TemplateField HeaderText="編輯" InsertVisible="False" ItemStyle-Width="1%">
<EditItemTemplate>
<asp:Label ID="Label5" runat="server" Text='<%# Eval("id") %>'></asp:Label>
</EditItemTemplate>
<ItemTemplate>
<asp:LinkButton ID="LinkButton4" runat="server" CausesValidation="False"
CommandName="Edit2" Text="修改"
CommandArgument='<%# Eval("id3") + "," + Eval("id4") %>'
CssClass="btn btn-primary btn-xs"></asp:LinkButton>
</ItemTemplate>
<ItemStyle Wrap="False" />
</asp:TemplateField>
</Columns>
</asp:GridView>
|
Default.aspx.cs 中
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "Edit2")
{
//string arg = e.CommandArgument.ToString();
string[] arg = e.CommandArgument.ToString().Split();
string id3 = e.CommandArgument.ToString().Split(',')[0].Trim();
string id4 = e.CommandArgument.ToString().Split(',')[1].Trim() ;
}
}
|
********************************************************************************
用超連結按鈕 (LinkButton) 傳
Default.aspx
<asp:GridView ID="GridView1" runat="server"
CssClass="table table-striped table-bordered table-hover table-responsive" AllowPaging="True"
AllowSorting="True" AutoGenerateColumns="False"
OnPageIndexChanging="GridView1_PageIndexChanging"
DataKeyNames="id"
OnRowCommand="GridView1_RowCommand"
DataSourceID="SqlDataSource1">
<Columns>
<asp:TemplateField HeaderText="ID5" SortExpression="ID5" Visible="false">
<EditItemTemplate>
<asp:TextBox ID="TextBox_ID5" runat="server" Text='<%# Bind("ID5") %>'></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="Label_ID5" runat="server" Text='<%# Bind("ID5") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="ID6" SortExpression="ID6" Visible="false">
<EditItemTemplate>
<asp:TextBox ID="TextBox_ID6" runat="server" Text='<%# Bind("ID6") %>'></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="Label_ID6" runat="server" Text='<%# Bind("ID6") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField ShowHeader="False">
<asp:TemplateField HeaderText="編輯" InsertVisible="False" ItemStyle-Width="1%">
<EditItemTemplate>
<asp:Label ID="Label5" runat="server" Text='<%# Eval("id") %>'></asp:Label>
</EditItemTemplate>
<ItemTemplate>
<asp:Button ID="Button1" runat="server" CommandName="Edit2" Text="編輯" />
</ItemTemplate>
<ItemStyle Wrap="False" />
</asp:TemplateField>
</Columns>
</asp:GridView>
|
Default.aspx.cs 中
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "Edit2")
{
int rowIndex = Convert.ToInt32(e.CommandArgument);
GridViewRow row = GridView1.Rows[rowIndex];
string id5 = (row.FindControl("Label_ID5") as Label).Text;
string id6 = (row.FindControl("Label_ID6") as Label).Text;
//string id5 = GridView1.Rows[rowIndex].Cells[1].Text;} } |
(完)
相關
沒有留言:
張貼留言