首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >动态postbackurl

动态postbackurl
EN

Stack Overflow用户
提问于 2014-01-21 04:32:23
回答 2查看 1.8K关注 0票数 3

我在asp中调用一个模式有问题

我需要根据下拉列表中选择的内容,从后面的代码中设置linkbutton4的postbackurl!我试过将postbackurl直接放在链接按钮标签上,但当我从后面的代码中更改它时,它没有BTW,当单击链接按钮时,我会更改它。

链接按钮后面的代码:

代码语言:javascript
复制
 protected void LinkButton4_Click(object sender, EventArgs e)
          { 
              var a = (Control)sender;
              GridViewRow row = (GridViewRow)a.NamingContainer;
              string b = row.Cells[0].Text;
              Session["C"] = b;
              DropDownList ddl  =(DropDownList)row.Cells[7].FindControl("DropDownList1");
              Session["D"] = ddl.SelectedItem.Text;
              LinkButton lb = (LinkButton)row.Cells[7].FindControl("LinkButton4");
              if (Session["D"].ToString() == "Upload")
              {
                  lb.PostBackUrl = "preprod_design.aspx#edit";
              //    Upload();
              }
              if (Session["D"].ToString() == "Download")
              {
                  Download();
              }
             infogridbind();
          }

下面是aspx的代码:

代码语言:javascript
复制
<asp:GridView ID="GridView2" runat="server" ondatabound="GridView2_DataBound" 
                     onrowdatabound="GridView2_RowDataBound" 
                     onrowcreated="GridView2_RowCreated" 
                     onselectedindexchanged="GridView2_SelectedIndexChanged" 
                     onrowcommand="GridView2_RowCommand" AutoGenerateColumns="False">
                  <Columns>
                   <asp:BoundField DataField="SizeSetID" SortExpression="SizeSetID"/>
                   <asp:BoundField DataField="Revision No." SortExpression="RevisionNo" HeaderText = "Revision No."/>
                   <asp:TemplateField HeaderText ="Image">
                  <ItemTemplate>
                  <asp:Image ID="Image2" runat="server" onError = "this.style.display = 'none';" ImageUrl='<%#"~/ClientPoImage.ashx?autoId="+Eval("[SizeSetID]")%>' Width="50px" Height="40px"/>
                  </ItemTemplate>
                  </asp:TemplateField>
                   <asp:BoundField DataField="Size Name" SortExpression="SizeName" HeaderText = "Size Name"/>
                   <asp:BoundField DataField="Quantity Requested" SortExpression="QuantityRequested" HeaderText ="Quantity Requested"/>
                   <asp:BoundField DataField="Quantity Received" SortExpression="QuantityReceived" HeaderText="Quantity Received"/>
                   <asp:BoundField DataField="Balance" SortExpression="Balance" HeaderText="Balance"/>
                      <asp:TemplateField HeaderText="Action">      
                  <ItemTemplate >
                      <asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="true">
                          <asp:ListItem>Upload</asp:ListItem>
                          <asp:ListItem>Download</asp:ListItem>
                          <asp:ListItem>Edit</asp:ListItem>
                          <asp:ListItem>Delete</asp:ListItem>
                          <asp:ListItem>Request</asp:ListItem>
                          <asp:ListItem>Receive</asp:ListItem>
                      </asp:DropDownList>
                        <asp:LinkButton ID="LinkButton4" runat="server" onclick="LinkButton4_Click">GO</asp:LinkButton>
                  </ItemTemplate>
                  </asp:TemplateField>
                  </Columns>
                 </asp:GridView>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-01-21 05:42:19

您可以在PostBackUrl事件中为LinkButton更改DropDownList.SelectedIndexChanged,如下所示

代码语言:javascript
复制
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
    var ddl = (DropDownList)sender;
    var row = (GridViewRow)(ddl.NamingContainer);
    var lb = (LinkButton)row.FindControl("LinkButton4");

    if (ddl.SelectedValue == "Upload")
    {
        lb.PostBackUrl = "preprod_design.aspx#edit";
    }
    if (ddl.SelectedValue == "Download")
    {
        ....
    }
}    

此外,您还需要像这样的更改标记

代码语言:javascript
复制
....
<asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="true"
 onselectedindexchanged="DropDownList1_SelectedIndexChanged" >
....
票数 1
EN

Stack Overflow用户

发布于 2014-01-21 04:49:36

AutoPostBack="True"中删除DropDownList,然后在页面<%@ Page Title="data"... EnableEventValidation="false" %>的标题中单击event按钮,然后单击

代码语言:javascript
复制
   GridViewRow gr = (GridViewRow)(((LinkButton)sender).NamingContainer);     

   DropDownList ddl = (DropDownList)gr.FindControl("DropDownList1");
   If(ddl.SelectedValue =="Upload")  // or u can use ddl.SelectedItem.Text
   {
      //Upload();
   }
   else if(ddl.SelectedValue == "Download")
   {
     //Download();
   }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21249221

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档