我正在尝试将一些用于我的QueryString的JavaScript函数插入到URL中。我正在DataGrid上工作,并在插入命令asp:LinkButton中调用PostBackUrl。这是我的URL:
PostBackUrl="ETaskerComments.aspx?etasker=12345&subCat=2"我正在从我的跳转页面获取JavaScript中的QueryStrings,我想用我的JavaScript变量替换subCat中的12345和2。任何帮助都是最好的。
谢谢
编辑:
让我试着澄清更多...
我有两个QueryStrings
var eTasker = getQueryParam("eTasker");
var subCat = getQueryParam("subCat");我想得到这样的东西:
PostBackUrl="ETaskerComments.aspx?eTasker=' + eTasker + '&subCat=' + subCat + '"我认为像他这样的东西可以工作,但是asp:LinkButton不喜欢它的语法。希望这对解释有所帮助。
谢谢
发布于 2012-02-25 06:36:04
我能够解决这个问题。我要做的就是把代码完全从客户端移到服务器端,以便像我想要的那样与DetailsView交互(我知道我说的是DataGrid,两者的工作方式应该是一样的)。PostBackUrl似乎不接受变量,因此这不是一个选项。此外,我最终在ASPX页面的头部使用了meta标记来不缓存页面。下面是我所做的:
将这些元标记放在页面的头部,以确保您的页面不会缓存。
<META HTTP-EQUIV="CACHE-CONTROL" CONTENT="NO-CACHE">
<META HTTP-EQUIV="PRAGMA" CONTENT="NO-CACHE">其次,我们将创建一个C#事件处理程序来捕获回发事件,并使页面重新加载到我们想要的位置,从而在流程中获得我们的QueryStrings。
<script type="text/c#" runat="server">
protected void Post_Back(object sender, EventArgs e)
{
string subCat = Request.QueryString["subCat"].ToString();
string eTasker = Request.QueryString["eTasker"].ToString();
if (this.IsPostBack)
{
Response.Redirect("ETaskerComments.aspx?eTasker=" + eTasker + "&subCat=" + subCat + "&Dashboard_ID=" +subCat);
}
}
</script>现在,我们不是使用OnClick将Post_Back附加到Insert,而是使用OnItemInserted参数将其附加到DetailsView:
<asp:DetailsView DefaultMode="Insert" OnItemInserted="Post_Back" runat="server" Width="700px" Height="50px" id="DetailsView1" AutoGenerateRows="False" DataSourceID="SqlDataSource1" DataKeyNames="ID" BackColor="#87AB7B" BorderColor="#1A120F" BorderWidth="1px" ForeColor="Black" CellPadding="2">就是这样。确保插入命令链接上没有附加更多的调用,这应该会运行您的命令,并使用新插入的记录刷新DataGrid/DetailsView。
感谢所有的观点。编码愉快!:)
https://stackoverflow.com/questions/9432411
复制相似问题