2012-02-24 3 views
0

Я пытаюсь вставить некоторые функции JavaScript, которые я использую для своей QueryString в URL-адресе. Я работаю над DataGrid и вызываю PostBackUrl из команды Insert asp: LinkButton. Вот мой URL:Использование переменной JavaScript в PostBackUrl

PostBackUrl="ETaskerComments.aspx?etasker=12345&subCat=2" 

Я получаю мои QueryStrings в JavaScript с моей страницы перемычки, и я хочу, чтобы заменить 12345 и 2 в подкатегории моих переменных JavaScript. Любая помощь будет большой.

Благодаря

Edit:

Позвольте мне попытаться прояснить больше ...

У меня есть два QueryStrings

var eTasker = getQueryParam("eTasker"); 
var subCat = getQueryParam("subCat"); 

Я желающих получить что-то вроде этого:

PostBackUrl="ETaskerComments.aspx?eTasker=' + eTasker + '&subCat=' + subCat + '" 

Я хоть что-то вроде его работаю, но asp: LinkButton не любит синтаксис. Надеюсь, это поможет в объяснении.

Thanks

+0

Я думаю, что вы еще не получили ответа, потому что вопрос немного трудно понять. Можете ли вы опубликовать несколько примеров кода? Это поможет уточнить. Вы всегда можете использовать метод javascript Replace() для замены текста, но я не уверен, что отвечает на ваш вопрос. – swannee

+0

Я пробовал метод замены и, кажется, не хочу отправлять сообщения после выполнения. Это боль в @ $$. :) – lazoDev

ответ

0

Я смог решить эту проблему. Я должен был сделать код полностью из клиентской стороны и переместить его на сервер, чтобы взаимодействовать с DetailsView (я знаю, что я сказал DataGrid, должен работать одинаково в любом случае), как я хотел. PostBackUrl не принимает переменные, поэтому это не может быть вариант. Кроме того, я закончил использование мета-тегов в начале страницы ASPX, чтобы не кэшировать страницу. Вот что я сделал:

Поместите эти метатеги внутри главы страницы, чтобы убедиться, что ваша страница не кешируется.

<META HTTP-EQUIV="CACHE-CONTROL" CONTENT="NO-CACHE"> 
<META HTTP-EQUIV="PRAGMA" CONTENT="NO-CACHE"> 

Во-вторых, мы goign сделать обработчик события # 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> 

Теперь вместо прикрепления Post_Back к вставке с OnClick, мы собираемся, чтобы присоединить его к DetailsView с параметром OnItemInserted:

<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 с недавно вставленной записью.

Спасибо за все виды. Счастливое кодирование! :)

+0

Почему я собираюсь получить -1, когда он работает? – lazoDev

Смежные вопросы